GRANT (Transact-SQL)
將安全性實體的權限授與某個主體。
- ALL
-
這個選項已被取代,只保留回溯相容性。它不會授與所有可能的權限。授與 ALL 等同於授與下列權限。
-
如果安全性實體是資料庫,"ALL" 表示 BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE 和 CREATE VIEW。
-
如果安全性實體是純量函數,"ALL" 表示 EXECUTE 和 REFERENCES。
-
如果安全性實體是資料表值函數,"ALL" 表示 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。
-
如果安全性實體是預存程序,則 "ALL" 表示 EXECUTE。
-
如果安全性實體是資料表,"ALL" 表示 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。
-
如果安全性實體是檢視,"ALL" 表示 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。
-
如果安全性實體是資料庫,"ALL" 表示 BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE 和 CREATE VIEW。
- PRIVILEGES
-
為符合 SQL-92 而包含這個項目。不會變更 ALL 的行為。
- permission
-
權限的名稱。權限對安全性實體的有效對應描述於下列子主題中。
- column
-
指定正在授與權限的資料表中資料行的名稱。它必須用括號 "()" 括住。
- class
-
指定正在授與權限之安全性實體的類別。需要範圍限定詞 "::"。
- securable
-
指定要授與其權限的安全性實體。
- TO principal
-
主體的名稱。可以被授與安全性實體權限的主體,隨著安全性實體而不同。如需有效的組合,請參閱下列子主題。
- GRANT OPTION
-
指出也會提供被授與者授與指定權限給其他主體的能力。
- AS principal
-
指定主體,執行這項查詢的主體就是從這個主體衍生權限來授與權限。
GRANT 陳述式的完整語法相當複雜。上述語法圖已簡化,以強調其結構。授與特定安全性實體權限的完整語法描述於下列主題中。
REVOKE 陳述式可用來移除授與的權限,而 DENY 陳述式可用來避免主體透過 GRANT 取得特定權限。
授與權限會移除指定安全性實體權限的 DENY 或 REVOKE。如果相同權限在包含安全性實體的更高範圍被拒絕,則 DENY 的優先順序較高。但是在更高範圍撤銷授與權限的優先順序並不會比較高。
資料庫層級權限是在指定資料庫的範圍內授與。如果使用者必須具有其他資料庫中的物件權限,應在其他資料庫中建立使用者帳戶,或將使用者帳戶存取權授與其他資料庫和目前的資料庫。
注意: |
|---|
| 在 SQL Server 2005 中,資料表層級的 DENY 不會優先於資料行層級的 GRANT。保留權限階層中這項不一致的目的,是為了與舊版相容。未來的版本將予以移除。 |
sp_helprotect 系統預存程序會報告資料庫層級安全性實體的權限。
同意授權者 (或是指定了 AS 選項的主體) 必須具有指定了 GRANT OPTION 的權限本身,或是具有隱含目前正在授與權限的更高權限。如果是使用 AS 選項,就必須套用額外的需求。如需詳細資料,請參閱安全性實體特定主題。
物件擁有者可以授與他們所擁有之物件的權限。具有安全性實體之 CONTROL 權限的主體可以授與該安全性實體的權限。
CONTROL SERVER 權限的被授與者 (例如系統管理員 (sysadmin) 固定伺服器角色的成員),可以授與伺服器中任何安全性實體的任何權限。資料庫之 CONTROL 權限的被授與者 (例如 db_owner 固定資料庫角色的成員),可以授與資料庫中任何安全性實體的任何權限。結構描述之 CONTROL 權限的被授與者,可以授與結構描述中任何物件的任何權限。
參考
DENY (Transact-SQL)REVOKE (Transact-SQL)
sp_addgroup (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_changegroup (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropgroup (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpgroup (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)


注意: