每個 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 <Schema-contained Securable>
賦予建立架構內可保護物件的能力。 不過,需要架構的 ALTER 許可權,才能在特定架構中建立安全性實體。
檢視定義
可讓授權者存取元數據。
參考文獻
需要資料表的 REFERENCES 權限,才能建立參考該資料表的外鍵約束。
需要在物件上具有 REFERENCES 許可權,才能使用包含該物件的子句來建立 FUNCTION 或 VIEW
WITH SCHEMABINDING。
SQL Server 許可權圖表
如需 PDF 格式之所有 Database Engine 權限的海報大小圖表,請參閱 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。
適用於特定安全性實體的權限
下表列出了許可權的主要類別以及可套用的安全對象類型。
| 權限 | 適用對象 |
|---|---|
| 選擇 | 同義詞 表格和欄 數據表值函式、Transact-SQL 和 Common Language Runtime (CLR) 和數據行 檢視和欄位 |
| 查看變更追蹤 | 資料表 模式 |
| 更新 | 同義詞 表格和欄 視圖和欄 序列物件 |
| 參考文獻 | 純量和聚合函數(Transact-SQL 和 CLR) Service Broker 佇列 表格和欄 表格值函數(Transact-SQL 和 CLR),以及欄位 型別 檢視和欄位 序列物件 |
| 插入 | 同義詞 表格和欄 檢視和欄 |
| 刪除 | 同義詞 表格和欄 視圖和欄位 |
| 執行指令 | 程序(Transact-SQL 和 CLR) 純量函數和聚合函數(Transact-SQL 和 CLR) 同義詞 CLR 類型 |
| 收到 | Service Broker 佇列 |
| 檢視定義 | 可用性群組 程序(Transact-SQL 和 CLR) 服務代理佇列 純量函數與聚合函數(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 中無法授與伺服器層級許可權,但在某些情況下,資料庫許可權是可用的。
| 基礎可保護對象 | 基礎安全控制項上的細微許可權 | 權限類型代碼 | 可設安全性的物件包含基底安全性物件 | 容器安全性實體的許可權,表示基底安全性實體上的細微許可權 |
|---|---|---|---|---|
| 應用角色 | 改變 | 鋁 | 資料庫 | ALTER ANY APPLICATION ROLE |
| 應用角色 | 控制 | CL | 資料庫 | 控制 |
| 應用角色 | 檢視定義 | 大眾 | 資料庫 | 檢視定義 |
| 議會 | 改變 | 鋁 | 資料庫 | 變更任何組件 |
| 議會 | 控制 | CL | 資料庫 | 控制 |
| 議會 | 參考文獻 | 射頻 | 資料庫 | 參考文獻 |
| 議會 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 議會 | 檢視定義 | 福斯 | 資料庫 | 檢視定義 |
| 非對稱密鑰 | 改變 | 鋁 | 資料庫 | 更改任何非對稱密鑰 |
| 非對稱密鑰 | 控制 | CL | 資料庫 | 控制 |
| 非對稱密鑰 | 參考文獻 | 射頻 | 資料庫 | 參考文獻 |
| 非對稱密鑰 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 非對稱密鑰 | 檢視定義 | 大眾 | 資料庫 | 檢視定義 |
| 可用性群組 | 改變 | 鋁 | 伺服器 | 變更任何可用性群組 |
| 可用性群組 | 控制 | CL | 伺服器 | 控制伺服器 |
| 可用性群組 | 掌握主控權 | 到 | 伺服器 | 控制伺服器 |
| 可用性群組 | 檢視定義 | 大眾 | 伺服器 | 查看任何定義 |
| 證書 | 改變 | 鋁 | 資料庫 | 變更任何證書 |
| 證書 | 控制 | CL | 資料庫 | 控制 |
| 證書 | 參考文獻 | 射頻 | 資料庫 | 參考文獻 |
| 證書 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 證書 | 檢視定義 | 福斯汽車 | 資料庫 | 檢視定義 |
| 合同 | 改變 | 鋁 | 資料庫 | 修改任何合約 |
| 合同 | 控制 | CL | 資料庫 | 控制 |
| 合同 | 參考文獻 | 射頻 | 資料庫 | 參考文獻 |
| 合同 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 合同 | 檢視定義 | 大眾 | 資料庫 | 檢視定義 |
| 資料庫 | 改變 | 鋁 | 伺服器 | 變更任何資料庫 |
| 資料庫 | ALTER ANY APPLICATION ROLE(變更任何應用程式角色) | 阿拉爾 | 伺服器 | 控制伺服器 |
| 資料庫 | 更改任何組件 | 唉 | 伺服器 | 控制伺服器 |
| 資料庫 | 更改任何非對稱金鑰 | ALAK | 伺服器 | 控制伺服器 |
| 資料庫 | 修改任何憑證 | ALCF | 伺服器 | 控制伺服器 |
| 資料庫 | 更改任何合約 | ALSC | 伺服器 | 控制伺服器 |
| 資料庫 | 更改任何資料庫稽核 | 阿爾達 | 伺服器 | 更改任何伺服器審計 |
| 資料庫 | 更改任何資料庫 DDL 觸發器 | ALTG | 伺服器 | 控制伺服器 |
| 資料庫 | ALTER ANY DATABASE EVENT NOTIFICATION | ALED | 伺服器 | 更改任何事件通知 |
| 資料庫 | 修改任何資料庫事件會話 | AADS 注意:僅適用於 SQL Database。 |
伺服器 | 更改任何事件會話 |
| 資料庫 | 修改任何資料空間 | ALDS | 伺服器 | 控制伺服器 |
| 資料庫 | ALTER ANY 全文目錄 | ALFT | 伺服器 | 控制伺服器 |
| 資料庫 | 更改任何訊息類型 | ALMT | 伺服器 | 控制伺服器 |
| 資料庫 | 更改任何遠端服務綁定 | ALSB | 伺服器 | 控制伺服器 |
| 資料庫 | 變更任何角色 | ALRL | 伺服器 | 控制伺服器 |
| 資料庫 | 變更任何路由 | ALRT | 伺服器 | 控制伺服器 |
| 資料庫 | 更改任何架構 | ALSM | 伺服器 | 控制伺服器 |
| 資料庫 | 更改任何安全策略 | ALSP 注意:僅適用於 SQL Database。 |
伺服器 | 控制伺服器 |
| 資料庫 | 變更任何服務 | ALSV | 伺服器 | 控制伺服器 |
| 資料庫 | 變更任意對稱金鑰 | ALSK | 伺服器 | 控制伺服器 |
| 資料庫 | 修改任何使用者 | ALUS | 伺服器 | 控制伺服器 |
| 資料庫 | 證實 | 認證 | 伺服器 | 驗證伺服器 |
| 資料庫 | 備份資料庫 | BADB | 伺服器 | 控制伺服器 |
| 資料庫 | 備份日誌 | BALO | 伺服器 | 控制伺服器 |
| 資料庫 | 檢查站 | CP | 伺服器 | 控制伺服器 |
| 資料庫 | 連接 | 一氧化碳 | 伺服器 | 控制伺服器 |
| 資料庫 | 連接複製 | 公司 | 伺服器 | 控制伺服器 |
| 資料庫 | 控制 | CL | 伺服器 | 控制伺服器 |
| 資料庫 | 創建聚合 | 峭壁 | 伺服器 | 控制伺服器 |
| 資料庫 | CREATE ASSEMBLY(建立組件) | CRAS | 伺服器 | 控制伺服器 |
| 資料庫 | 建立非對稱金鑰 | CRAK | 伺服器 | 控制伺服器 |
| 資料庫 | 創建證書 | CRCF | 伺服器 | 控制伺服器 |
| 資料庫 | 建立合約 | CRSC | 伺服器 | 控制伺服器 |
| 資料庫 | 建立資料庫 | CRDB | 伺服器 | 建立任何資料庫 |
| 資料庫 | 建立資料庫 DDL 事件通知 | CRED | 伺服器 | 建立 DDL 事件通知 |
| 資料庫 | 建立預設值 | CRDF | 伺服器 | 控制伺服器 |
| 資料庫 | 建立全文目錄 | CRFT | 伺服器 | 控制伺服器 |
| 資料庫 | CREATE FUNCTION | CRFN | 伺服器 | 控制伺服器 |
| 資料庫 | 建立消息類型 | CRMT | 伺服器 | 控制伺服器 |
| 資料庫 | 建立程序 | CRPR | 伺服器 | 控制伺服器 |
| 資料庫 | 建立佇列 | CRQU | 伺服器 | 控制伺服器 |
| 資料庫 | 建立遠端服務系結 | 資源共享平台 (CRSB) | 伺服器 | 控制伺服器 |
| 資料庫 | 建立角色 | CRRL | 伺服器 | 控制伺服器 |
| 資料庫 | 建立路由 | CRRT(連續性腎臟替代療法) | 伺服器 | 控制伺服器 |
| 資料庫 | 建立規則 | CRRU | 伺服器 | 控制伺服器 |
| 資料庫 | 建立結構描述 | CRSM | 伺服器 | 控制伺服器 |
| 資料庫 | 建立服務 | CRSV | 伺服器 | 控制伺服器 |
| 資料庫 | 建立對稱金鑰 | CRSK | 伺服器 | 控制伺服器 |
| 資料庫 | CREATE SYNONYM | CRSN | 伺服器 | 控制伺服器 |
| 資料庫 | 建立資料表 | CRTB | 伺服器 | 控制伺服器 |
| 資料庫 | 建立類型 | CRTY | 伺服器 | 控制伺服器 |
| 資料庫 | 建立視圖 | CRVW | 伺服器 | 控制伺服器 |
| 資料庫 | 建立 XML 架構集合 | CRXS | 伺服器 | 控制伺服器 |
| 資料庫 | 刪除 | DL | 伺服器 | 控制伺服器 |
| 資料庫 | 執行指令 | 前任 | 伺服器 | 控制伺服器 |
| 資料庫 | 插入 | 在內 | 伺服器 | 控制伺服器 |
| 資料庫 | 終止資料庫連線 | KIDC 注意:僅適用於 SQL Database。 在 SQL Server 中使用 ALTER ANY CONNECTION。 |
伺服器 | 變更任何連線 |
| 資料庫 | 參考文獻 | 射頻 | 伺服器 | 控制伺服器 |
| 資料庫 | 選擇 | SL | 伺服器 | 控制伺服器 |
| 資料庫 | SHOWPLAN | SPLN | 伺服器 | 更改追蹤 |
| 資料庫 | 訂閱查詢通知 | SUQN | 伺服器 | 控制伺服器 |
| 資料庫 | 掌握主控權 | 到 | 伺服器 | 控制伺服器 |
| 資料庫 | 更新 | 向上 | 伺服器 | 控制伺服器 |
| 資料庫 | 檢視資料庫狀態 | VWDS | 伺服器 | 查看伺服器狀態 |
| 資料庫 | 檢視定義 | VW | 伺服器 | 查看任何定義 |
| 端點 | 改變 | 鋁 | 伺服器 | 修改任何端點 |
| 端點 | 連線 | 一氧化碳 | 伺服器 | 控制伺服器 |
| 端點 | 控制 | CL | 伺服器 | 控制伺服器 |
| 端點 | 掌握主控權 | 到 | 伺服器 | 控制伺服器 |
| 端點 | 檢視定義 | 大眾 | 伺服器 | 查看任何定義 |
| 全文目錄 | 改變 | 鋁 | 資料庫 | 修改任何全文目錄 |
| 全文目錄 | 控制 | CL | 資料庫 | 控制 |
| 全文目錄 | 參考文獻 | 射頻 | 資料庫 | 參考文獻 |
| 全文目錄 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 全文目錄 | 檢視定義 | 大眾 | 資料庫 | 檢視定義 |
| 全文停止詞列表 | 改變 | 鋁 | 資料庫 | 更改任何全文目錄 |
| 全文停止詞列表 | 控制 | CL | 資料庫 | 控制 |
| 全文停止詞列表 | 參考文獻 | 射頻 | 資料庫 | 參考文獻 |
| 全文停止詞列表 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 全文停止詞列表 | 檢視定義 | VW | 資料庫 | 檢視定義 |
| 登錄 | 改變 | 鋁 | 伺服器 | 變更任意登入 |
| 登錄 | 控制 | CL | 伺服器 | 控制伺服器 |
| 登錄 | 類比 | 即時通信 | 伺服器 | 控制伺服器 |
| 登錄 | 檢視定義 | 大眾 | 伺服器 | 查看任何定義 |
| 訊息類型 | 改變 | 鋁 | 資料庫 | 變更任何訊息類型 |
| 訊息類型 | 控制 | CL | 資料庫 | 控制 |
| 訊息類型 | 參考文獻 | 射頻 | 資料庫 | 參考文獻 |
| 訊息類型 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 訊息類型 | 檢視定義 | 福斯大眾 | 資料庫 | 檢視定義 |
| 物件 | 改變 | 鋁 | 圖式 | 改變 |
| 物件 | 控制 | CL | 圖式 | 控制 |
| 物件 | 刪除 | 深度學習 | 圖式 | 刪除 |
| 物件 | 執行指令 | 前任 | 圖式 | 執行指令 |
| 物件 | 插入 | 在內 | 圖式 | 插入 |
| 物件 | 收到 | 鋼筋混凝土 | 圖式 | 控制 |
| 物件 | 參考文獻 | 射頻 | 圖式 | 參考文獻 |
| 物件 | 選取 | SL | 圖式 | 選擇 |
| 物件 | 掌握主控權 | 到 | 圖式 | 控制 |
| 物件 | 更新 | 向上 | 圖式 | 更新 |
| 物件 | 檢視變更追蹤記錄 | VWCT | 圖式 | 檢視變更追蹤 |
| 物件 | 檢視定義 | 福斯 | 圖式 | 檢視定義 |
| 遠端服務綁定 | 改變 | 鋁 | 資料庫 | 更改任何遠端服務繫結 |
| 遠端服務綁定 | 控制 | CL | 資料庫 | 控制 |
| 遠端服務綁定 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 遠端服務綁定 | 檢視定義 | 大眾 | 資料庫 | 檢視定義 |
| 角色 | 改變 | 鋁 | 資料庫 | 更改任何角色 |
| 角色 | 控制 | CL | 資料庫 | 控制 |
| 角色 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 角色 | 檢視定義 | VW | 資料庫 | 檢視定義 |
| 路線 | 改變 | 鋁 | 資料庫 | 變更任何路由 |
| 路線 | 控制 | CL | 資料庫 | 控制 |
| 路線 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 路線 | 檢視定義 | 福斯 | 資料庫 | 檢視定義 |
| 搜尋房產清單 | 改變 | 鋁 | 伺服器 | 修改任何全文目錄 |
| 搜尋房產清單 | 控制 | CL | 伺服器 | 控制 |
| 搜尋房產清單 | 參考文獻 | 射頻 | 伺服器 | 參考文獻 |
| 搜尋房產清單 | 掌握主控權 | 到 | 伺服器 | 控制 |
| 搜尋房產清單 | 檢視定義 | 大眾 | 伺服器 | 檢視定義 |
| 圖式 | 改變 | 鋁 | 資料庫 | 改變任何結構描述 (ALTER ANY SCHEMA) |
| 圖式 | 控制 | CL | 資料庫 | 控制 |
| 圖式 | CREATE SEQUENCE(建立序列) | CRSO | 資料庫 | 控制 |
| 圖式 | 刪除 | DL | 資料庫 | 刪除 |
| 圖式 | 執行指令 | 前任 | 資料庫 | 執行指令 |
| 圖式 | 插入 | 在內 | 資料庫 | 插入 |
| 圖式 | 參考文獻 | 射頻 | 資料庫 | 參考文獻 |
| 圖式 | 選取 | SL | 資料庫 | 選取 |
| 圖式 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 圖式 | 更新 | 向上 | 資料庫 | 更新 |
| 圖式 | 查看變更追蹤功能 | VWCT | 資料庫 | 檢視變更記錄 |
| 圖式 | 檢視定義 | 大眾 | 資料庫 | 檢視定義 |
| 伺服器 | 管理批量操作 | ADBO | 不適用 | 不適用 |
| 伺服器 | 更改任何連接權限 | ALCO | 不適用 | 不適用 |
| 伺服器 | 更改任何憑證 | ALCD | 不適用 | 不適用 |
| 伺服器 | 修改任何資料庫 | ALDB | 不適用 | 不適用 |
| 伺服器 | 變更任何端點 | ALHE | 不適用 | 不適用 |
| 伺服器 | 更改任意事件通知 | 艾爾啤酒 | 不適用 | 不適用 |
| 伺服器 | 修改任何事件會話 | AAES | 不適用 | 不適用 |
| 伺服器 | 更改任何連接的伺服器 | ALLS | 不適用 | 不適用 |
| 伺服器 | 更改任何登入 | ALLG | 不適用 | 不適用 |
| 伺服器 | 變更任意伺服器審計 | ALAA | 不適用 | 不適用 |
| 伺服器 | 變更任何伺服器角色 | ALSR | 不適用 | 不適用 |
| 伺服器 | 變更可用性群組 | ALAG | 不適用 | 不適用 |
| 伺服器 | 更改資源 | ALRS | 不適用 | 不適用 |
| 伺服器 | 更改伺服器狀態 | ALSS | 不適用 | 不適用 |
| 伺服器 | 修改設定 | ALST | 不適用 | 不適用 |
| 伺服器 | ALTER TRACE | ALTR | 不適用 | 不適用 |
| 伺服器 | 驗證伺服器 | 認證 | 不適用 | 不適用 |
| 伺服器 | 連接任何資料庫 | CADB | 不適用 | 不適用 |
| 伺服器 | 連接 SQL | COSQ | 不適用 | 不適用 |
| 伺服器 | 控制伺服器 | CL | 不適用 | 不適用 |
| 伺服器 | 建立任何資料庫 | CRDB | 不適用 | 不適用 |
| 伺服器 | 建立可用性群組 | CRAC | 不適用 | 不適用 |
| 伺服器 | 創建 DDL 事件通知 | CRDE | 不適用 | 不適用 |
| 伺服器 | 建立端點 | CRHE | 不適用 | 不適用 |
| 伺服器 | 建立伺服器角色 | CRSR | 不適用 | 不適用 |
| 伺服器 | 建立追蹤事件通知 | CRTE | 不適用 | 不適用 |
| 伺服器 | 外部存取組件 | XA | 不適用 | 不適用 |
| 伺服器 | 冒充任何登入 | IAL | 不適用 | 不適用 |
| 伺服器 | 選取所有使用者安全性物件 | SUS | 不適用 | 不適用 |
| 伺服器 | 關機 | SHDN | 不適用 | 不適用 |
| 伺服器 | 不安全集會 | 徐 | 不適用 | 不適用 |
| 伺服器 | 查看任何資料庫 | VWDB | 不適用 | 不適用 |
| 伺服器 | 查看任何定義 | VWAD | 不適用 | 不適用 |
| 伺服器 | 查看伺服器狀態 | VWSS | 不適用 | 不適用 |
| 伺服器角色 | 改變 | 鋁 | 伺服器 | 更改任何伺服器角色 |
| 伺服器角色 | 控制 | CL | 伺服器 | 控制伺服器 |
| 伺服器角色 | 掌握主控權 | 到 | 伺服器 | 控制伺服器 |
| 伺服器角色 | 檢視定義 | 大眾 | 伺服器 | 查看任何定義 |
| 服務 | 改變 | 鋁 | 資料庫 | 更改任何服務 |
| 服務 | 控制 | CL | 資料庫 | 控制 |
| 服務 | 發送 | 序號 | 資料庫 | 控制 |
| 服務 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 服務 | 檢視定義 | 大眾 | 資料庫 | 檢視定義 |
| 對稱金鑰 | 改變 | 鋁 | 資料庫 | 更改任何對稱密鑰 |
| 對稱金鑰 | 控制 | CL | 資料庫 | 控制 |
| 對稱金鑰 | 參考文獻 | 射頻 | 資料庫 | 參考文獻 |
| 對稱金鑰 | 掌握主控權 | 到 | 資料庫 | 控制 |
| 對稱金鑰 | 檢視定義 | 福斯 | 資料庫 | 檢視定義 |
| 類型 | 控制 | CL | 圖式 | 控制 |
| 類型 | 執行指令 | 前任 | 圖式 | 執行指令 |
| 類型 | 參考文獻 | 射頻 | 圖式 | 參考文獻 |
| 類型 | 掌握主控權 | 到 | 圖式 | 控制 |
| 類型 | 檢視定義 | 大眾汽車 | 圖式 | 檢視定義 |
| 使用者 | 改變 | 鋁 | 資料庫 | 修改任何使用者 |
| 使用者 | 控制 | CL | 資料庫 | 控制 |
| 使用者 | 冒充 | 即時通信 | 資料庫 | 控制 |
| 使用者 | 檢視定義 | 福斯 (大眾) | 資料庫 | 檢視定義 |
| XML 架構集合 | 改變 | 鋁 | 圖式 | 改變 |
| XML 架構集合 | 控制 | CL | 圖式 | 控制 |
| XML 架構集合 | 執行指令 | 前任 | 圖式 | 執行指令 |
| XML 架構集合 | 參考文獻 | 射頻 | 圖式 | 參考文獻 |
| XML 架構集合 | 掌握主控權 | 到 | 圖式 | 控制 |
| XML 架構集合 | 檢視定義 | 大眾汽車 (VW) | 圖式 | 檢視定義 |
許可權檢查演算法的摘要
檢查權限可能相當複雜。 許可權檢查演算法包含重疊的群組成員資格和擁有鏈,涉及明確和隱含的許可權,並且可能受到包含安全性實體的可保護類別的許可權影響。 演算法的一般程式是收集所有相關許可權。 如果找不到封鎖 DENY,演算法會搜尋提供足夠存取權的 GRANT。 演算法包含三個基本元素: 安全性內容、 許可權空間和 必要許可權。
備註
您無法授與、拒絕或撤銷sa、dbo、實體擁有者、information_schema、sys 或您自己的許可權。
安全性內容
這是參與存取檢查許可權的主體群組。 這些是與目前登入或使用者相關的許可權,除非透過 EXECUTE AS 語句將安全上下文變更為另一個登入或使用者。 安全性內容包含下列主體:
登入
使用者
角色成員資格
Windows 群組成員資格
如果使用模組簽署,則用於簽署使用者目前執行之模組之憑證的任何登入或用戶帳戶,以及該主體的相關角色成員資格。
許可權空間
這是可保護的實體以及所有包含該實體的可保護類別。 例如,數據表(安全性實體)是由架構安全性實體類別和資料庫安全性實體類別所包含。 存取可能會受到數據表、架構、資料庫和伺服器層級許可權的影響。 如需詳細資訊,請參閱 許可權階層 (Database Engine)。
必要許可權
所需的許可權種類。 例如,INSERT、UPDATE、DELETE、SELECT、EXECUTE、ALTER、CONTROL 等等。
存取可能需要多個許可權,如下列範例所示:
預存程式需要預存程式的 EXECUTE 許可權,以及預存程式所參考之數個數據表的 INSERT 許可權。
動態管理檢視可能需要 VIEW SERVER STATE 權限以及對檢視的 SELECT 權限。
演算法的一般步驟
當演算法判斷是否允許存取安全性實體時,所使用的精確步驟可能會因主體和所涉及的安全性實體而有所不同。 不過,演算法會執行下列一般步驟:
略過許可權檢查,當登入是 sysadmin 固定伺服器角色的成員,或使用者是目前資料庫中的 dbo 使用者時。
如果擁有權鏈結適用,且鏈結中較早的對象已通過安全性檢查,則允許存取。
匯總與呼叫端相關聯的伺服器層級、資料庫層級和已簽署模組身分識別,以建立 安全性內容。
針對該安全性內容,收集在權限範圍內授予或拒絕的所有權限。 許可權可以明確地表示為 GRANT、GRANT WITH GRANT 或 DENY;或者,許可權可以是隱含的或涵蓋的許可權,例如 GRANT 或 DENY。 例如,對架構的 CONTROL 權限意味著擁有對資料表的 CONTROL 權限。 數據表上的 CONTROL 表示 SELECT。 因此,如果授予架構上的 CONTROL,則會授予資料表上的 SELECT。 如果數據表上的 CONTROL 遭到拒絕,則會拒絕數據表上的 SELECT。
備註
數據行層級許可權的 GRANT 會覆寫物件層級的 DENY。
識別 必要的許可權。
如果物件的許可權空間中的安全性內容的任何身分識別直接或隱含被拒絕必要許可權,則許可權檢查失敗。
如果必要的許可權未被拒絕,並且必要的許可權直接或隱含地包含 GRANT 或 GRANT WITH GRANT 許可權,授予安全性內容中的任何身分識別,以便許可權空間中的任何物件通過許可權檢查。
範例
本節中的範例示範如何擷取許可權資訊。
A。 傳回可授與許可權的完整清單
下列語句會使用 fn_builtin_permissions 函式傳回所有 Database Engine 許可權。 如需詳細資訊,請參閱 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
另請參閱
權限階層 (Database Engine)
sys.database_permissions (Transact-SQL)