REVOKE (Transact-SQL)
移除先前授與或拒絕的權限。
- GRANT OPTION FOR
-
表示將撤銷授與指定權限的能力。這在您使用 CASCADE 引數時是必須的。
重要事項: 如果主體有不含 GRANT 選項的指定權限,則會撤銷權限本身。
- 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 | FROM principal
-
這是主體的名稱。可以撤銷安全性實體權限的主體,隨著安全性實體而不同。如需有關有效組合的詳細資訊,請參閱本主題稍後<安全性實體特定語法>中所列的主題。
- CASCADE
-
指出目前正在撤銷的權限,也會從它被這個主體所授與的其他主體一起撤銷。當您使用 CASCADE 引數時,必須也包括 GRANT OPTION FOR 引數。
注意: 獲得授與 WITH GRANT OPTION 之權限的串聯撤銷,會同時撤銷該權限的 GRANT 和 DENY。
- AS principal
-
指定主體,執行這項查詢的主體會從這個主體衍生其權限來撤銷權限。
REVOKE 陳述式的完整語法相當複雜。前一個圖表已簡化,以強調其結構。撤銷特定安全性實體權限的完整語法描述於本主題稍後<安全性實體特定語法>所列的幾個主題中。
REVOKE 陳述式可用來移除授與的權限,而 DENY 陳述式可用來避免主體透過 GRANT 取得特定權限。
授與權限會移除指定安全性實體權限的 DENY 或 REVOKE。如果相同權限在包含安全性實體的更高範圍被拒絕,則 DENY 的優先順序較高。然而,在更高範圍撤銷授與權限的優先順序並不會比較高。
注意: |
|---|
| 在 SQL Server 2005 中,資料表層級的 DENY 不會優先於資料行層級的 GRANT。保留權限階層中這項不一致的目的,是為了與舊版相容。未來的版本將移除這個行為。 |
sp_helprotect 系統預存程序會報告資料庫層級安全性實體的權限。
從被授與指定了 GRANT OPTION 之權限的主體撤銷權限時,如果未指定 CASCADE,REVOKE 陳述式便會失敗。
參考
DENY (Transact-SQL)GRANT (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)

