每個 SQL Server 保護物件都有可授與主體的相關許可權。 本主題提供下列資訊:
權限命名慣例
下列描述命名權限所遵循的一般慣例:
控制
授與承受人類似所有權的能力。 獲授權者在安全性實體上擁有所有已定義的權限。 已被授與CONTROL權限的主體也可以授與可控資源的許可權。 因為 SQL Server 安全性模型是階層式的,因此特定範圍的 CONTROL 會隱含地包含該範圍下所有安全物件的 CONTROL。 例如,資料庫的 CONTROL 表示資料庫的所有許可權、資料庫中所有元件的所有許可權、資料庫中所有架構的所有許可權,以及資料庫內所有架構內物件的所有許可權。
改變
授予變更特定可被保護物屬性(不包括擁有權)的能力。 在某範圍內授予時,ALTER 也會賦予修改、建立或刪除該範圍所含任何安全性物件的能力。 例如,架構的 ALTER 許可權包括從架構建立、改變和卸載物件的能力。
ALTER ANY <伺服器可安全化>,其中伺服器可安全化可以是任何伺服器可安全化。
賦予建立、修改或刪除伺服器安全物件單一實體的能力。 例如,ALTER ANY LOGIN 賦予在實例中建立、更改或丟棄任何登入資料的能力。
ALTER ANY <>可以是資料庫層級的任何可保護物件。
授予建立、修改或刪除資料庫安全性實體各個實例的能力。 例如,ALTER ANY SCHEMA 可授權建立、修改或丟棄資料庫中的任何結構結構。
掌握主控權
可讓受讓人取得其被授予的可授予對象的擁有權。
IMPERSONATE <登入>
允許被授權者模擬登入。
冒充 <使用者>
可讓授權者冒充使用者。
CREATE <Server 安全性實體>
授予受讓人建立 伺服器可控資源 的能力。
CREATE <Database 可授權物件>
授予被授權者建立 資料庫可保護物件的能力。
CREATE <結構描述內含的可保護實體>
賦予建立架構內可保護物件的能力。 不過,需要架構的 ALTER 許可權,才能在特定架構中建立安全性實體。
VIEW 定義
可讓授權者存取元數據。
參考文獻
需要資料表的 REFERENCES 權限,才能建立參考該資料表的外鍵約束。
若要建立含有參考該物件之 FUNCTION 子句的 VIEW 或
WITH SCHEMABINDING,則需要具備該物件的 REFERENCES 權限。
SQL Server 許可權圖表
如需 PDF 格式之所有 資料庫引擎 權限的海報大小圖表,請參閱 https://github.com/microsoft/sql-server-samples/blob/master/samples/features/security/permissions-posters/Microsoft_SQL_Server_2017_and_Azure_SQL_Database_permissions_infographic.pdf。
適用於特定安全性實體的權限
下表列出了許可權的主要類別以及可套用的安全對象類型。
| 權限 | 適用對象 |
|---|---|
| SELECT | 同義詞 表格和欄 數據表值函式、Transact-SQL 和 Common Language Runtime (CLR) 和數據行 檢視和欄位 |
| VIEW 變更追蹤 | 資料表 模式 |
| UPDATE | 同義詞 表格和欄 檢視和欄位 序列物件 |
| 參考文獻 | 純量和聚合函數(Transact-SQL 和 CLR) Service Broker 佇列 表格和欄 表格值函數(Transact-SQL 和 CLR),以及欄位 型別 檢視和欄位 序列物件 |
| INSERT | 同義詞 表格和欄 檢視和欄位 |
| DELETE | 同義詞 表格和欄 檢視和欄位 |
| 執行指令 | 程序(Transact-SQL 和 CLR) 純量和聚合函數(Transact-SQL 和 CLR) 同義詞 CLR 類型 |
| RECEIVE | Service Broker 佇列 |
| VIEW 定義 | 可用性群組 程序(Transact-SQL 和 CLR) Service Broker 佇列 純量和聚合函數(Transact-SQL 和 CLR) 登入、使用者和角色 同義詞 資料表 資料表值函數 (Transact-SQL 和 CLR) 瀏覽次數 序列物件 |
| 改變 | 可用性群組 程序(Transact-SQL 和 CLR) 純量和聚合函數(Transact-SQL 和 CLR) 序列物件 登入、使用者和角色 Service Broker 佇列 資料表 資料表值函數 (Transact-SQL 和 CLR) 瀏覽次數 |
| 掌握主控權 | 可用性群組 角色 程序(Transact-SQL 和 CLR) 純量和聚合函數(Transact-SQL 和 CLR) 伺服器角色 同義詞 資料表 資料表值函數 (Transact-SQL 和 CLR) 瀏覽次數 序列物件 |
| 控制 | 可用性群組 程序(Transact-SQL 和 CLR) 純量和聚合函數(Transact-SQL 和 CLR) 登入、使用者和角色 Service Broker 佇列 同義詞 資料表 資料表值函數 (Transact-SQL 和 CLR) 瀏覽次數 序列物件 |
| 冒充 | 登入和使用者 |
謹慎
在安裝時授與系統對象的默認許可權會根據可能的威脅仔細評估,而且不需要在強化 SQL Server 安裝時加以改變。 系統物件上許可權的任何變更都可以限制或中斷功能,而且可能會讓SQL Server 安裝處於不支援的狀態。
SQL Server 和 SQL Database 許可權
下表提供 SQL Server 許可權的完整清單。 SQL Database 許可權僅適用於支援的基礎安全性物件。 SQL Database 中無法授與伺服器層級許可權,但在某些情況下,資料庫許可權是可用的。
| 基礎可保護對象 | 基礎安全控制項上的細微許可權 | 權限類型代碼 | 可設安全性的物件包含基底安全性物件 | 容器安全性實體的許可權,表示基底安全性實體上的細微許可權 |
|---|---|---|---|---|
| APPLICATION ROLE | 改變 | 鋁 | DATABASE | 更改任何 APPLICATION ROLE |
| APPLICATION ROLE | 控制 | CL | DATABASE | 控制 |
| APPLICATION ROLE | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| ASSEMBLY | 改變 | 鋁 | DATABASE | 更改任何 ASSEMBLY |
| ASSEMBLY | 控制 | CL | DATABASE | 控制 |
| ASSEMBLY | 參考文獻 | 射頻 | DATABASE | 參考文獻 |
| ASSEMBLY | 掌握主控權 | 到 | DATABASE | 控制 |
| ASSEMBLY | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| ASYMMETRIC KEY | 改變 | 鋁 | DATABASE | 更改任何 ASYMMETRIC KEY |
| ASYMMETRIC KEY | 控制 | CL | DATABASE | 控制 |
| ASYMMETRIC KEY | 參考文獻 | 射頻 | DATABASE | 參考文獻 |
| ASYMMETRIC KEY | 掌握主控權 | 到 | DATABASE | 控制 |
| ASYMMETRIC KEY | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| AVAILABILITY GROUP | 改變 | 鋁 | 伺服器 | 更改任何 AVAILABILITY GROUP |
| AVAILABILITY GROUP | 控制 | CL | 伺服器 | 控制伺服器 |
| AVAILABILITY GROUP | 掌握主控權 | 到 | 伺服器 | 控制伺服器 |
| AVAILABILITY GROUP | VIEW 定義 | 大眾 | 伺服器 | VIEW 任何定義皆可 |
| CERTIFICATE | 改變 | 鋁 | DATABASE | 更改任何 CERTIFICATE |
| CERTIFICATE | 控制 | CL | DATABASE | 控制 |
| CERTIFICATE | 參考文獻 | 射頻 | DATABASE | 參考文獻 |
| CERTIFICATE | 掌握主控權 | 到 | DATABASE | 控制 |
| CERTIFICATE | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| CONTRACT | 改變 | 鋁 | DATABASE | 更改任何 CONTRACT |
| CONTRACT | 控制 | CL | DATABASE | 控制 |
| CONTRACT | 參考文獻 | 射頻 | DATABASE | 參考文獻 |
| CONTRACT | 掌握主控權 | 到 | DATABASE | 控制 |
| CONTRACT | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| DATABASE | 改變 | 鋁 | 伺服器 | 更改任何 DATABASE |
| DATABASE | 更改任何 APPLICATION ROLE | 阿拉爾 | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 ASSEMBLY | 唉 | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 ASYMMETRIC KEY | ALAK | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 CERTIFICATE | ALCF | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 CONTRACT | ALSC | 伺服器 | 控制伺服器 |
| DATABASE | 修改任何 DATABASE 稽核 | 阿爾達 | 伺服器 | 更改任何 SERVER AUDIT |
| DATABASE | 變更任何 DATABASE DDL TRIGGER | ALTG | 伺服器 | 控制伺服器 |
| DATABASE | 修改任何 DATABASEEVENT NOTIFICATION | ALED | 伺服器 | 更改任何 EVENT NOTIFICATION |
| DATABASE | 修改任何 DATABASEEVENT SESSION | AADS 注意:僅適用於 SQL Database。 |
伺服器 | 更改任何 EVENT SESSION |
| DATABASE | 修改任何資料空間 | ALDS | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 FULLTEXT CATALOG | ALFT | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 MESSAGE TYPE | ALMT | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 REMOTE SERVICE BINDING | ALSB | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 ROLE | ALRL | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 ROUTE | ALRT | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 SCHEMA | ALSM | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 SECURITY POLICY | ALSP 注意:僅適用於 SQL Database。 |
伺服器 | 控制伺服器 |
| DATABASE | 更改任何 SERVICE | ALSV | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 SYMMETRIC KEY | ALSK | 伺服器 | 控制伺服器 |
| DATABASE | 更改任何 USER | ALUS | 伺服器 | 控制伺服器 |
| DATABASE | 證實 | 認證 | 伺服器 | 驗證伺服器 |
| DATABASE | BACKUP DATABASE | BADB | 伺服器 | 控制伺服器 |
| DATABASE | BACKUP 日誌 | BALO | 伺服器 | 控制伺服器 |
| DATABASE | 檢查站 | CP | 伺服器 | 控制伺服器 |
| DATABASE | 連接 | 一氧化碳 | 伺服器 | 控制伺服器 |
| DATABASE | 連接複製 | 公司 | 伺服器 | 控制伺服器 |
| DATABASE | 控制 | CL | 伺服器 | 控制伺服器 |
| DATABASE | CREATE AGGREGATE | 峭壁 | 伺服器 | 控制伺服器 |
| DATABASE | CREATE ASSEMBLY | CRAS | 伺服器 | 控制伺服器 |
| DATABASE | CREATE ASYMMETRIC KEY | CRAK | 伺服器 | 控制伺服器 |
| DATABASE | CREATE CERTIFICATE | CRCF | 伺服器 | 控制伺服器 |
| DATABASE | CREATE CONTRACT | CRSC | 伺服器 | 控制伺服器 |
| DATABASE | CREATE DATABASE | CRDB | 伺服器 | 建立任何內容 DATABASE |
| DATABASE | CREATE DATABASE DDL EVENT NOTIFICATION | CRED | 伺服器 | 建立 DDL EVENT NOTIFICATION |
| DATABASE | CREATE DEFAULT | CRDF | 伺服器 | 控制伺服器 |
| DATABASE | CREATE FULLTEXT CATALOG | CRFT | 伺服器 | 控制伺服器 |
| DATABASE | CREATE FUNCTION | CRFN | 伺服器 | 控制伺服器 |
| DATABASE | CREATE MESSAGE TYPE | CRMT | 伺服器 | 控制伺服器 |
| DATABASE | CREATE PROCEDURE | CRPR | 伺服器 | 控制伺服器 |
| DATABASE | CREATE QUEUE | CRQU | 伺服器 | 控制伺服器 |
| DATABASE | CREATE REMOTE SERVICE BINDING | 資源共享平台 (CRSB) | 伺服器 | 控制伺服器 |
| DATABASE | CREATE ROLE | CRRL | 伺服器 | 控制伺服器 |
| DATABASE | CREATE ROUTE | CRRT(連續性腎臟替代療法) | 伺服器 | 控制伺服器 |
| DATABASE | CREATE RULE | CRRU | 伺服器 | 控制伺服器 |
| DATABASE | CREATE SCHEMA | CRSM | 伺服器 | 控制伺服器 |
| DATABASE | CREATE SERVICE | CRSV | 伺服器 | 控制伺服器 |
| DATABASE | CREATE SYMMETRIC KEY | CRSK | 伺服器 | 控制伺服器 |
| DATABASE | CREATE SYNONYM | CRSN | 伺服器 | 控制伺服器 |
| DATABASE | CREATE TABLE | CRTB | 伺服器 | 控制伺服器 |
| DATABASE | CREATE TYPE | CRTY | 伺服器 | 控制伺服器 |
| DATABASE | CREATE VIEW | CRVW | 伺服器 | 控制伺服器 |
| DATABASE | CREATE XML SCHEMA COLLECTION | CRXS | 伺服器 | 控制伺服器 |
| DATABASE | DELETE | DL | 伺服器 | 控制伺服器 |
| DATABASE | 執行指令 | 前任 | 伺服器 | 控制伺服器 |
| DATABASE | INSERT | 在內 | 伺服器 | 控制伺服器 |
| DATABASE | 中斷 DATABASE 連線 | KIDC 注意:僅適用於 SQL Database。 在 SQL Server 中使用 ALTER ANY CONNECTION。 |
伺服器 | 變更任何連線 |
| DATABASE | 參考文獻 | 射頻 | 伺服器 | 控制伺服器 |
| DATABASE | SELECT | SL | 伺服器 | 控制伺服器 |
| DATABASE | SHOWPLAN | SPLN | 伺服器 | 更改追蹤 |
| DATABASE | 訂閱查詢通知 | SUQN | 伺服器 | 控制伺服器 |
| DATABASE | 掌握主控權 | 到 | 伺服器 | 控制伺服器 |
| DATABASE | UPDATE | 向上 | 伺服器 | 控制伺服器 |
| DATABASE | VIEW DATABASE 州 | VWDS | 伺服器 | VIEW 伺服器狀態 |
| DATABASE | VIEW 定義 | 大眾 | 伺服器 | VIEW 任何定義皆可 |
| ENDPOINT | 改變 | 鋁 | 伺服器 | 更改任何 ENDPOINT |
| ENDPOINT | 連接 | 一氧化碳 | 伺服器 | 控制伺服器 |
| ENDPOINT | 控制 | CL | 伺服器 | 控制伺服器 |
| ENDPOINT | 掌握主控權 | 到 | 伺服器 | 控制伺服器 |
| ENDPOINT | VIEW 定義 | 大眾 | 伺服器 | VIEW 任何定義皆可 |
| FULLTEXT CATALOG | 改變 | 鋁 | DATABASE | 更改任何 FULLTEXT CATALOG |
| FULLTEXT CATALOG | 控制 | CL | DATABASE | 控制 |
| FULLTEXT CATALOG | 參考文獻 | 射頻 | DATABASE | 參考文獻 |
| FULLTEXT CATALOG | 掌握主控權 | 到 | DATABASE | 控制 |
| FULLTEXT CATALOG | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| FULLTEXT STOPLIST | 改變 | 鋁 | DATABASE | 更改任何 FULLTEXT CATALOG |
| FULLTEXT STOPLIST | 控制 | CL | DATABASE | 控制 |
| FULLTEXT STOPLIST | 參考文獻 | 射頻 | DATABASE | 參考文獻 |
| FULLTEXT STOPLIST | 掌握主控權 | 到 | DATABASE | 控制 |
| FULLTEXT STOPLIST | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| LOGIN | 改變 | 鋁 | 伺服器 | 更改任何 LOGIN |
| LOGIN | 控制 | CL | 伺服器 | 控制伺服器 |
| LOGIN | 冒充 | 即時通信 | 伺服器 | 控制伺服器 |
| LOGIN | VIEW 定義 | 大眾 | 伺服器 | VIEW 任何定義皆可 |
| MESSAGE TYPE | 改變 | 鋁 | DATABASE | 更改任何 MESSAGE TYPE |
| MESSAGE TYPE | 控制 | CL | DATABASE | 控制 |
| MESSAGE TYPE | 參考文獻 | 射頻 | DATABASE | 參考文獻 |
| MESSAGE TYPE | 掌握主控權 | 到 | DATABASE | 控制 |
| MESSAGE TYPE | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| 物件 | 改變 | 鋁 | SCHEMA | 改變 |
| 物件 | 控制 | CL | SCHEMA | 控制 |
| 物件 | DELETE | DL | SCHEMA | DELETE |
| 物件 | 執行指令 | 前任 | SCHEMA | 執行指令 |
| 物件 | INSERT | 在內 | SCHEMA | INSERT |
| 物件 | RECEIVE | RC | SCHEMA | 控制 |
| 物件 | 參考文獻 | 射頻 | SCHEMA | 參考文獻 |
| 物件 | SELECT | SL | SCHEMA | SELECT |
| 物件 | 掌握主控權 | 到 | SCHEMA | 控制 |
| 物件 | UPDATE | 向上 | SCHEMA | UPDATE |
| 物件 | VIEW 變更追蹤 | VWCT | SCHEMA | VIEW 變更追蹤 |
| 物件 | VIEW 定義 | 大眾 | SCHEMA | VIEW 定義 |
| REMOTE SERVICE BINDING | 改變 | 鋁 | DATABASE | 更改任何 REMOTE SERVICE BINDING |
| REMOTE SERVICE BINDING | 控制 | CL | DATABASE | 控制 |
| REMOTE SERVICE BINDING | 掌握主控權 | 到 | DATABASE | 控制 |
| REMOTE SERVICE BINDING | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| ROLE | 改變 | 鋁 | DATABASE | 更改任何 ROLE |
| ROLE | 控制 | CL | DATABASE | 控制 |
| ROLE | 掌握主控權 | 到 | DATABASE | 控制 |
| ROLE | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| ROUTE | 改變 | 鋁 | DATABASE | 更改任何 ROUTE |
| ROUTE | 控制 | CL | DATABASE | 控制 |
| ROUTE | 掌握主控權 | 到 | DATABASE | 控制 |
| ROUTE | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| SEARCH PROPERTY LIST | 改變 | 鋁 | 伺服器 | 更改任何 FULLTEXT CATALOG |
| SEARCH PROPERTY LIST | 控制 | CL | 伺服器 | 控制 |
| SEARCH PROPERTY LIST | 參考文獻 | 射頻 | 伺服器 | 參考文獻 |
| SEARCH PROPERTY LIST | 掌握主控權 | 到 | 伺服器 | 控制 |
| SEARCH PROPERTY LIST | VIEW 定義 | 大眾 | 伺服器 | VIEW 定義 |
| SCHEMA | 改變 | 鋁 | DATABASE | 更改任何 SCHEMA |
| SCHEMA | 控制 | CL | DATABASE | 控制 |
| SCHEMA | CREATE SEQUENCE | CRSO | DATABASE | 控制 |
| SCHEMA | DELETE | DL | DATABASE | DELETE |
| SCHEMA | 執行指令 | 前任 | DATABASE | 執行指令 |
| SCHEMA | INSERT | 在內 | DATABASE | INSERT |
| SCHEMA | 參考文獻 | 射頻 | DATABASE | 參考文獻 |
| SCHEMA | SELECT | SL | DATABASE | SELECT |
| SCHEMA | 掌握主控權 | 到 | DATABASE | 控制 |
| SCHEMA | UPDATE | 向上 | DATABASE | UPDATE |
| SCHEMA | VIEW 變更追蹤 | VWCT | DATABASE | VIEW 變更追蹤 |
| SCHEMA | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| 伺服器 | 管理批量操作 | ADBO | 不適用 | 不適用 |
| 伺服器 | 變更任何連線 | ALCO | 不適用 | 不適用 |
| 伺服器 | 更改任何 CREDENTIAL | ALCD | 不適用 | 不適用 |
| 伺服器 | 更改任何 DATABASE | ALDB | 不適用 | 不適用 |
| 伺服器 | 更改任何 ENDPOINT | ALHE | 不適用 | 不適用 |
| 伺服器 | 更改任何 EVENT NOTIFICATION | 艾爾啤酒 | 不適用 | 不適用 |
| 伺服器 | 更改任何 EVENT SESSION | AAES | 不適用 | 不適用 |
| 伺服器 | 更改任何連接的伺服器 | ALLS | 不適用 | 不適用 |
| 伺服器 | 更改任何 LOGIN | ALLG | 不適用 | 不適用 |
| 伺服器 | 更改任何 SERVER AUDIT | ALAA | 不適用 | 不適用 |
| 伺服器 | 更改任何 SERVER ROLE | ALSR | 不適用 | 不適用 |
| 伺服器 | ALTER AVAILABILITY GROUP | ALAG | 不適用 | 不適用 |
| 伺服器 | 更改資源 | ALRS | 不適用 | 不適用 |
| 伺服器 | 更改伺服器狀態 | ALSS | 不適用 | 不適用 |
| 伺服器 | 修改設定 | ALST | 不適用 | 不適用 |
| 伺服器 | 更改追蹤 | ALTR | 不適用 | 不適用 |
| 伺服器 | 驗證伺服器 | 認證 | 不適用 | 不適用 |
| 伺服器 | 連接任何 DATABASE | CADB | 不適用 | 不適用 |
| 伺服器 | 連接 SQL | COSQ | 不適用 | 不適用 |
| 伺服器 | 控制伺服器 | CL | 不適用 | 不適用 |
| 伺服器 | 建立任何內容 DATABASE | CRDB | 不適用 | 不適用 |
| 伺服器 | 建立可用性群組 | CRAC | 不適用 | 不適用 |
| 伺服器 | 建立 DDL EVENT NOTIFICATION | CRDE | 不適用 | 不適用 |
| 伺服器 | CREATE ENDPOINT | CRHE | 不適用 | 不適用 |
| 伺服器 | CREATE SERVER ROLE | CRSR | 不適用 | 不適用 |
| 伺服器 | 建立追蹤記錄 EVENT NOTIFICATION | CRTE | 不適用 | 不適用 |
| 伺服器 | 外部存取 ASSEMBLY | XA | 不適用 | 不適用 |
| 伺服器 | 冒充任何一個 LOGIN | IAL | 不適用 | 不適用 |
| 伺服器 | 選擇所有 USER 擔保資產 | SUS | 不適用 | 不適用 |
| 伺服器 | 關機 | SHDN | 不適用 | 不適用 |
| 伺服器 | 不安全 ASSEMBLY | 徐 | 不適用 | 不適用 |
| 伺服器 | VIEW 任意 DATABASE | VWDB | 不適用 | 不適用 |
| 伺服器 | VIEW 任何定義皆可 | VWAD | 不適用 | 不適用 |
| 伺服器 | VIEW 伺服器狀態 | VWSS | 不適用 | 不適用 |
| SERVER ROLE | 改變 | 鋁 | 伺服器 | 更改任何 SERVER ROLE |
| SERVER ROLE | 控制 | CL | 伺服器 | 控制伺服器 |
| SERVER ROLE | 掌握主控權 | 到 | 伺服器 | 控制伺服器 |
| SERVER ROLE | VIEW 定義 | 大眾 | 伺服器 | VIEW 任何定義皆可 |
| SERVICE | 改變 | 鋁 | DATABASE | 更改任何 SERVICE |
| SERVICE | 控制 | CL | DATABASE | 控制 |
| SERVICE | SEND | 序號 | DATABASE | 控制 |
| SERVICE | 掌握主控權 | 到 | DATABASE | 控制 |
| SERVICE | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| SYMMETRIC KEY | 改變 | 鋁 | DATABASE | 更改任何 SYMMETRIC KEY |
| SYMMETRIC KEY | 控制 | CL | DATABASE | 控制 |
| SYMMETRIC KEY | 參考文獻 | 射頻 | DATABASE | 參考文獻 |
| SYMMETRIC KEY | 掌握主控權 | 到 | DATABASE | 控制 |
| SYMMETRIC KEY | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| TYPE | 控制 | CL | SCHEMA | 控制 |
| TYPE | 執行指令 | 前任 | SCHEMA | 執行指令 |
| TYPE | 參考文獻 | 射頻 | SCHEMA | 參考文獻 |
| TYPE | 掌握主控權 | 到 | SCHEMA | 控制 |
| TYPE | VIEW 定義 | 大眾 | SCHEMA | VIEW 定義 |
| USER | 改變 | 鋁 | DATABASE | 更改任何 USER |
| USER | 控制 | CL | DATABASE | 控制 |
| USER | 冒充 | 即時通信 | DATABASE | 控制 |
| USER | VIEW 定義 | 大眾 | DATABASE | VIEW 定義 |
| XML SCHEMA COLLECTION | 改變 | 鋁 | SCHEMA | 改變 |
| XML SCHEMA COLLECTION | 控制 | CL | SCHEMA | 控制 |
| XML SCHEMA COLLECTION | 執行指令 | 前任 | SCHEMA | 執行指令 |
| XML SCHEMA COLLECTION | 參考文獻 | 射頻 | SCHEMA | 參考文獻 |
| XML SCHEMA COLLECTION | 掌握主控權 | 到 | SCHEMA | 控制 |
| XML SCHEMA COLLECTION | VIEW 定義 | 大眾 | SCHEMA | VIEW 定義 |
許可權檢查演算法的摘要
檢查權限可能相當複雜。 許可權檢查演算法包含重疊的群組成員資格和擁有鏈,涉及明確和隱含的許可權,並且可能受到包含安全性實體的可保護類別的許可權影響。 演算法的一般程式是收集所有相關許可權。 若未發現造成阻塞的 DENY,該演算法會搜尋可提供足夠存取權限的 GRANT。 演算法包含三個基本元素: 安全性內容、 許可權空間和 必要許可權。
備註
您無法授與、拒絕或撤銷sa、dbo、實體擁有者、information_schema、sys 或您自己的許可權。
安全性內容
這是參與存取檢查許可權的主體群組。 這些權限與目前的登入或使用者相關,除非使用該 EXECUTE AS 語句將安全情境變更為另一個登入或使用者。 安全性內容包含下列主體:
登入
使用者
角色成員資格
Windows 群組成員資格
如果使用模組簽署,則用於簽署使用者目前執行之模組之憑證的任何登入或用戶帳戶,以及該主體的相關角色成員資格。
許可權空間
這是可保護的實體以及所有包含該實體的可保護類別。 例如,數據表(安全性實體)是由架構安全性實體類別和資料庫安全性實體類別所包含。 存取可能會受到數據表、架構、資料庫和伺服器層級許可權的影響。 如需詳細資訊,請參閱 許可權階層 (資料庫引擎)。
必要許可權
所需的許可權種類。 例如,INSERT、UPDATE、DELETE、SELECT、EXECUTE、ALTER、CONTROL 等等。
存取可能需要多個許可權,如下列範例所示:
預存程序可能同時需要對該預存程序具有 EXECUTE 權限,以及對該預存程序所參照的多個資料表具有 INSERT 權限。
動態管理檢視可能需要同時具備 VIEW SERVER STATE 權限以及該檢視上的 SELECT 權限。
演算法的一般步驟
當演算法判斷是否允許存取安全性實體時,所使用的精確步驟可能會因主體和所涉及的安全性實體而有所不同。 不過,演算法會執行下列一般步驟:
略過許可權檢查,當登入是 sysadmin 固定伺服器角色的成員,或使用者是目前資料庫中的 dbo 使用者時。
如果擁有權鏈結適用,且鏈結中較早的對象已通過安全性檢查,則允許存取。
匯總與呼叫端相關聯的伺服器層級、資料庫層級和已簽署模組身分識別,以建立 安全性內容。
針對該安全性內容,收集在權限範圍內授予或拒絕的所有權限。 權限可明確表述為 GRANT、GRANT 搭配 GRANT,或 DENY;或者,該權限也可以是默示或涵蓋性權限 GRANT 或 DENY。 例如,對架構的 CONTROL 權限意味著擁有對資料表的 CONTROL 權限。 數據表上的 CONTROL 表示 SELECT。 因此,如果授予架構上的 CONTROL,則會授予資料表上的 SELECT。 如果數據表上的 CONTROL 遭到拒絕,則會拒絕數據表上的 SELECT。
備註
欄位層級權限的 A GRANT 會覆蓋物件層級的 A DENY 。
識別 必要的許可權。
如果物件的許可權空間中的安全性內容的任何身分識別直接或隱含被拒絕必要許可權,則許可權檢查失敗。
若所需權限未被拒絕,且該權限直接或隱含GRANTGRANTGRANT對安全情境中任一身份的權限,則通過權限檢查。
範例
本節中的範例示範如何擷取許可權資訊。
A。 傳回可授與許可權的完整清單
下列語句會使用 fn_builtin_permissions 函式傳回所有 資料庫引擎 許可權。 如需詳細資訊,請參閱 sys.fn_builtin_permissions (Transact-SQL) 。
SELECT * FROM fn_builtin_permissions(default);
GO
B. 傳回特定物件類別的許可權
下列範例會使用 fn_builtin_permissions 來檢視某一類別的安全物件可用的所有許可權。 此範例會傳回元件的許可權。
SELECT * FROM fn_builtin_permissions('assembly');
GO
C. 傳回執行主體在某個物件上被授予的權限
下列範例會使用 fn_my_permissions 傳回由呼叫主體在指定安全性實體上持有的有效許可權清單。 此範例會傳回名為 Orders55的物件許可權。 如需詳細資訊,請參閱 sys.fn_my_permissions (Transact-SQL) 。
SELECT * FROM fn_my_permissions('Orders55', 'object');
GO
D. 傳回適用於指定物件的許可權
下列範例會傳回適用於稱為 Yttrium之物件的許可權。 請注意,內建函式 OBJECT_ID 是用來擷取 對象的 Yttrium標識碼。
SELECT * FROM sys.database_permissions
WHERE major_id = OBJECT_ID('Yttrium');
GO