The Wayback Machine - http://web.archive.org/web/20121027133948/http://msdn.microsoft.com:80/zh-tw/library/ms188338(v=sql.90).aspx
本主題尚未接受評分 - 為這個主題評分

DENY (Transact-SQL)

更新: 2006 年 12 月 12 日

對主體拒絕權限。防止主體透過其群組或角色成員資格繼承權限。


Simplified syntax for DENY
DENY { ALL [ PRIVILEGES ] }
      | permission [ ( column [ ,...n ] ) ] [ ,...n ]
      [ ON [ class :: ] securable ] TO principal [ ,...n ] 
      [ CASCADE] [ AS principal ]
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。
PRIVILEGES

為符合 SQL-92 而包含這個項目。不會變更 ALL 的行為。

permission

權限的名稱。權限對安全性實體的有效對應描述於下列子主題中。

column

指定正在拒絕權限的資料表中資料行的名稱。它必須用括號 "()" 括住。

class

指定正在拒絕權限之安全性實體的類別。需要範圍限定詞 "::"。

securable

指定正在拒絕權限的安全性實體。

TO principal

主體的名稱。可以被拒絕安全性實體權限的主體,隨著安全性實體而不同。如需有效的組合,請參閱下列安全性實體特定主題。

CASCADE

表示已對指定主體和對被主體授與權限的所有其他主體拒絕權限。當主體具有 GRANT OPTION 的權限時,這是必要的。

AS principal

指定主體,執行這個陳述式的主體就是從這個主體衍生權限來拒絕權限。

DENY 陳述式的完整語法相當複雜。上圖已簡化,以強調其結構。拒絕特定安全性實體權限的完整語法描述於下列主題中。

如果對被授與指定 GRANT OPTION 之權限的主體拒絕權限時沒有指定 CASCADE,DENY 便會失敗。

資料行層級權限優先於物件權限。例如,如果拒絕權限套用至基底物件 (例如資料表),然後授與權限套用至基底物件的其中一個資料行,則權限的被授與者將擁有資料行的存取權 (儘管基底物件上套用了拒絕也一樣)。不過,為了確定資料行層級權限存在,這些權限必須在套用基底物件上的權限之後套用。

ms188338.note(zh-tw,SQL.90).gif附註:
在 SQL Server 2005 中,保留權限階層中這項不一致的目的是為了回溯相容性。未來的版本將予以移除。

sp_helprotect 系統預存程序會報告資料庫層級安全性實體的權限。

ms188338.Caution(zh-tw,SQL.90).gif注意:
拒絕資料庫的 CONTROL 權限隱含著拒絕資料庫的 CONNECT 權限。被拒絕資料庫 CONTROL 權限的主體將無法連接至該資料庫。根據相同的 Token,拒絕 CONTROL SERVER 權限隱含著拒絕伺服器的 CONNECT SQL 權限。被拒絕伺服器 CONTROL SERVER 權限的主體將無法連接至該伺服器。

呼叫者 (或指定了 AS 選項的主體) 必須具有安全性實體的 CONTROL 權限,或是具有隱含安全性實體 CONTROL 權限的更高權限。如果使用 AS 選項,指定的主體必須擁有要拒絕其權限的類型。

CONTROL SERVER 權限的被授與者 (例如系統管理員 (sysadmin) 固定伺服器角色的成員),可以拒絕伺服器中任何安全性實體的任何權限。資料庫 CONTROL 權限的被授與者 (例如 db_owner 固定資料庫角色的成員),可以拒絕資料庫中任何安全性實體的任何權限。結構描述之 CONTROL 權限的被授與者,可以拒絕結構描述中任何物件的任何權限。如果使用 AS 子句,指定的主體必須擁有要拒絕其權限的類型。

版本 歷程記錄

2006 年 12 月 12 日

新增內容:
  • 新增內容,釐清了資料行層級權限優先於物件權限的優先順序。
本文對您有任何幫助嗎?
(剩餘 1500 個字元)
社群內容 新增