DENY (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
-
主體的名稱。可以被拒絕安全性實體權限的主體,隨著安全性實體而不同。如需有效的組合,請參閱下列安全性實體特定主題。
- CASCADE
-
表示已對指定主體和對被主體授與權限的所有其他主體拒絕權限。當主體具有 GRANT OPTION 的權限時,這是必要的。
- AS principal
-
指定主體,執行這個陳述式的主體就是從這個主體衍生權限來拒絕權限。
DENY 陳述式的完整語法相當複雜。上圖已簡化,以強調其結構。拒絕特定安全性實體權限的完整語法描述於下列主題中。
如果對被授與指定 GRANT OPTION 之權限的主體拒絕權限時沒有指定 CASCADE,DENY 便會失敗。
資料行層級權限優先於物件權限。例如,如果拒絕權限套用至基底物件 (例如資料表),然後授與權限套用至基底物件的其中一個資料行,則權限的被授與者將擁有資料行的存取權 (儘管基底物件上套用了拒絕也一樣)。不過,為了確定資料行層級權限存在,這些權限必須在套用基底物件上的權限之後套用。
附註: |
|---|
| 在 SQL Server 2005 中,保留權限階層中這項不一致的目的是為了回溯相容性。未來的版本將予以移除。 |
sp_helprotect 系統預存程序會報告資料庫層級安全性實體的權限。
注意: |
|---|
| 拒絕資料庫的 CONTROL 權限隱含著拒絕資料庫的 CONNECT 權限。被拒絕資料庫 CONTROL 權限的主體將無法連接至該資料庫。根據相同的 Token,拒絕 CONTROL SERVER 權限隱含著拒絕伺服器的 CONNECT SQL 權限。被拒絕伺服器 CONTROL SERVER 權限的主體將無法連接至該伺服器。 |
呼叫者 (或指定了 AS 選項的主體) 必須具有安全性實體的 CONTROL 權限,或是具有隱含安全性實體 CONTROL 權限的更高權限。如果使用 AS 選項,指定的主體必須擁有要拒絕其權限的類型。
CONTROL SERVER 權限的被授與者 (例如系統管理員 (sysadmin) 固定伺服器角色的成員),可以拒絕伺服器中任何安全性實體的任何權限。資料庫 CONTROL 權限的被授與者 (例如 db_owner 固定資料庫角色的成員),可以拒絕資料庫中任何安全性實體的任何權限。結構描述之 CONTROL 權限的被授與者,可以拒絕結構描述中任何物件的任何權限。如果使用 AS 子句,指定的主體必須擁有要拒絕其權限的類型。
參考
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)


附註: