共用方式為


sys.fn_builtin_permissions(Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric 中的 SQL 資料庫

傳回伺服器內建許可權階層的描述。 sys.fn_builtin_permissions只能在 SQL Server 和 Azure SQL 資料庫 上呼叫,不論目前平臺上是否支援這些許可權,它都會傳回所有許可權。 大部分的許可權都適用於所有平臺,但有些則不適用。 例如,無法在 SQL 資料庫 上授與伺服器層級許可權。 如需哪些平台支援每個許可權的資訊,請參閱許可權(資料庫引擎)。

Transact-SQL 語法慣例

Syntax

sys.fn_builtin_permissions ( [ DEFAULT | NULL ]
    | empty_string | '<securable_class>' } )
  
<securable_class> ::=
      APPLICATION ROLE | ASSEMBLY | ASYMMETRIC KEY | AVAILABILITY GROUP
    | CERTIFICATE | CONTRACT | DATABASE | DATABASE SCOPED CREDENTIAL
    | ENDPOINT | FULLTEXT CATALOG | FULLTEXT STOPLIST | LOGIN
    | MESSAGE TYPE | OBJECT | REMOTE SERVICE BINDING | ROLE | ROUTE
    | SCHEMA | SEARCH PROPERTY LIST | SERVER | SERVER ROLE | SERVICE
    | SYMMETRIC KEY | TYPE | USER | XML SCHEMA COLLECTION

Arguments

[ DEFAULT |NULL ]

使用 DEFAULT 選項呼叫函式時(不含引號),函式會傳回內建許可權的完整清單。

NULL 相當於 DEFAULT。

empty_string

相當於 DEFAULT。

「<securable_class>」

以一個安全性實體類別的名稱呼叫時, sys.fn_builtin_permissions 會傳回套用至 類別的所有許可權。 '<securable_class>'nvarchar(60) 類型的字串常值,需要引號。

傳回的數據表

欄位名稱 數據類型 Collation Description
class_desc nvarchar(60) 伺服器的定序 安全性實體類別的描述。
permission_name nvarchar(60) 伺服器的定序 權限名稱。
型別 varchar(4) 伺服器的定序 精簡許可權類型程序代碼。 請參閱下列數據表。
covering_permission_name nvarchar(60) 伺服器的定序 如果不是 NULL,這是這個類別的許可權名稱,表示此類別的其他許可權。
parent_class_desc nvarchar(60) 伺服器的定序 如果不是 NULL,這是包含目前類別的父類別名稱。
parent_covering_permission_name nvarchar(60) 伺服器的定序 如果不是 NULL,這是父類別的許可權名稱,表示該類別上所有其他許可權。

權限類型

權限類型 權限名稱 適用於安全性實體或類別
AADS 修改任何資料庫事件會話

適用於:SQL Server 2014 (12.x) 和 更新版本
DATABASE
AAES 更改任何事件會話 SERVER
AAMK 更改任何遮罩

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
ADBO 管理批量操作 SERVER
AEDS 更改任何外部資料來源

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
AEFF 修改任何外部檔案格式

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
AL ALTER 應用角色
AL ALTER ASSEMBLY
AL ALTER

適用於:SQL Server 2012 (11.x) 和更新版本。
可用性群組
AL ALTER 非對稱鍵
AL ALTER CERTIFICATE
AL ALTER CONTRACT
AL ALTER DATABASE
AL ALTER

適用於:SQL Server 2017 (14.x) 和更新版本,以及 Azure SQL Database。
資料庫範圍憑證
AL ALTER ENDPOINT
AL ALTER 全文目錄
AL ALTER 全文檢索停止清單
AL ALTER LOGIN
AL ALTER 訊息類型
AL ALTER OBJECT
AL ALTER 遠端服務綁定
AL ALTER ROLE
AL ALTER ROUTE
AL ALTER SCHEMA
AL ALTER 搜尋房產清單
AL ALTER

適用於:SQL Server 2012 (11.x) 和更新版本。
伺服器角色
AL ALTER SERVICE
AL ALTER 對稱鍵
AL ALTER USER
AL ALTER XML 架構集合
ALAA 更改任何伺服器審計 SERVER
ALAG 變更任何可用性群組

適用於:SQL Server 2012 (11.x) 和更新版本。
SERVER
ALAK 更改任何非對稱密鑰 DATABASE
ALAR 更改任何應用程式角色 DATABASE
ALAS 變更任何組件 DATABASE
ALCD 更改任何憑證 SERVER
ALCF 變更任何證書 DATABASE
ALCK 更改任何列加密金鑰

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
ALCM 變更任意列主密鑰

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
ALCO 變更任何連線 SERVER
ALDA 更改任何資料庫稽核 DATABASE
ALDB 變更任何資料庫 SERVER
ALDC 更改任何資料庫範圍的配置

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
ALDS 修改任何資料空間 DATABASE
ALED 變更任何資料庫事件通知 DATABASE
ALES 更改任何事件通知 SERVER
ALFT ALTER ANY 全文目錄 DATABASE
ALHE 修改任何端點 SERVER
ALLG 變更任意登入 SERVER
ALLS 更改任何連接的伺服器 SERVER
ALMT 更改任何訊息類型 DATABASE
ALRL 變更任何角色 DATABASE
ALRS ALTER 資源 SERVER
ALRT 變更任何路由 DATABASE
ALSB 更改任何遠端服務綁定 DATABASE
ALSC 修改任何合約 DATABASE
ALSK 變更任意對稱金鑰 DATABASE
ALSM 更改任何架構 DATABASE
ALSP 更改任何安全策略

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
ALSR 變更任何伺服器角色

適用於:SQL Server 2012 (11.x) 和更新版本。
SERVER
ALSS 更改伺服器狀態 SERVER
ALST 變換設定 SERVER
ALSV 變更任何服務 DATABASE
ALTG 更改任何資料庫 DDL 觸發器 DATABASE
ALTR ALTER TRACE SERVER
ALUS 修改任何使用者 DATABASE
AUTH AUTHENTICATE DATABASE
AUTH 認證伺服器 SERVER
BADB 備份資料庫 DATABASE
BALO 備份日誌 DATABASE
CADB 連接任何資料庫

適用於:SQL Server 2014 (12.x) 和更新版本。
SERVER
CL CONTROL 應用角色
CL CONTROL ASSEMBLY
CL CONTROL 非對稱鍵
CL CONTROL

適用於:SQL Server 2012 (11.x) 和更新版本。
可用性群組
CL CONTROL CERTIFICATE
CL CONTROL CONTRACT
CL CONTROL DATABASE
CL CONTROL

適用於:SQL Server 2017 (14.x) 和更新版本,以及 Azure SQL Database。
資料庫範圍憑證
CL CONTROL ENDPOINT
CL CONTROL 全文目錄
CL CONTROL 全文檢索停止清單
CL CONTROL LOGIN
CL CONTROL 訊息類型
CL CONTROL OBJECT
CL CONTROL 遠端服務綁定
CL CONTROL ROLE
CL CONTROL ROUTE
CL CONTROL SCHEMA
CL CONTROL 搜尋房產清單
CL 控制伺服器 SERVER
CL CONTROL

適用於:SQL Server 2012 (11.x) 和更新版本。
伺服器角色
CL CONTROL SERVICE
CL CONTROL 對稱鍵
CL CONTROL TYPE
CL CONTROL USER
CL CONTROL XML 架構集合
CO CONNECT DATABASE
CO CONNECT ENDPOINT
CORP 連接複本 DATABASE
COSQ 連結 SQL SERVER
CP CHECKPOINT DATABASE
CRAC 建立可用性群組

適用於:SQL Server 2012 (11.x) 和更新版本。
SERVER
CRAG 創建聚合 DATABASE
CRAK 建立非對稱金鑰 DATABASE
CRAS CREATE ASSEMBLY(建立組件) DATABASE
CRCF 創建證書 DATABASE
CRDB 建立任何資料庫 SERVER
CRDB 建立資料庫 DATABASE
CRDE 建立 DDL 事件通知 SERVER
CRDF 建立預設值 DATABASE
CRED 建立資料庫 DDL 事件通知 DATABASE
CRFN 建立函數 DATABASE
CRFT 建立全文目錄 DATABASE
CRHE 建立端點 SERVER
CRMT 建立消息類型 DATABASE
CRPR 建立程序 DATABASE
CRQU 建立佇列 DATABASE
CRRL 創建角色 DATABASE
CRRT 建立路由 DATABASE
CRRU 建立規則 DATABASE
CRSB 建立遠端服務系結 DATABASE
CRSC 建立合約 DATABASE
CRSK 建立對稱金鑰 DATABASE
CRSM 建立結構描述 DATABASE
CRSN CREATE 同義字 DATABASE
CRSO 建立序列 SCHEMA
CRSR 建立伺服器角色

適用於:SQL Server 2012 (11.x) 和更新版本。
SERVER
CRSV 建立服務 DATABASE
CRTB CREATE TABLE DATABASE
CRTE 建立追蹤事件通知 SERVER
CRTY 建立類型 (CREATE TYPE) DATABASE
CRVW 建立視圖 DATABASE
CRXS 建立 XML 架構集合 DATABASE
DABO 管理資料庫批量操作

適用於:SQL Database。
DATABASE
DL DELETE DATABASE
DL DELETE OBJECT
DL DELETE SCHEMA
EAES 執行任何外部腳本

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
EX EXECUTE DATABASE
EX EXECUTE OBJECT
EX EXECUTE SCHEMA
EX EXECUTE TYPE
EX EXECUTE XML 架構集合
IAL 冒充任何登入

適用於:SQL Server 2014 (12.x) 和更新版本。
SERVER
IM IMPERSONATE LOGIN
IM IMPERSONATE USER
IN INSERT DATABASE
IN INSERT OBJECT
IN INSERT SCHEMA
KIDC 終止資料庫連線

適用於:Azure SQL Database。
DATABASE
RC RECEIVE OBJECT
RF REFERENCES ASSEMBLY
RF REFERENCES 非對稱鍵
RF REFERENCES CERTIFICATE
RF REFERENCES CONTRACT
RF REFERENCES DATABASE
RF REFERENCES

適用於:SQL Server 2017 (14.x) 和更新版本,以及 Azure SQL Database。
資料庫範圍憑證
RF REFERENCES 全文目錄
RF REFERENCES 全文檢索停止清單
RF REFERENCES 搜尋房產清單
RF REFERENCES 訊息類型
RF REFERENCES OBJECT
RF REFERENCES SCHEMA
RF REFERENCES 對稱鍵
RF REFERENCES TYPE
RF REFERENCES XML 架構集合
SHDN SHUTDOWN SERVER
SL SELECT DATABASE
SL SELECT OBJECT
SL SELECT SCHEMA
SN SEND SERVICE
SPLN SHOWPLAN DATABASE
SUQN 訂閱查詢通知 DATABASE
SUS 選取所有使用者安全性物件

適用於:SQL Server 2014 (12.x) 和更新版本。
SERVER
TO 掌握所有權 ASSEMBLY
TO 掌握所有權 非對稱鍵
TO 掌握所有權

適用於:SQL Server 2012 (11.x) 和更新版本。
可用性群組
TO 掌握所有權 CERTIFICATE
TO 掌握所有權 CONTRACT
TO 掌握所有權 DATABASE
TO 掌握所有權

適用於:SQL Server 2017 (14.x) 和更新版本,以及 Azure SQL Database。
資料庫範圍憑證
TO 掌握所有權 ENDPOINT
TO 掌握所有權 全文目錄
TO 掌握所有權 全文檢索停止清單
TO 掌握所有權 搜尋房產清單
TO 掌握所有權 訊息類型
TO 掌握所有權 OBJECT
TO 掌握所有權 遠端服務綁定
TO 掌握所有權 ROLE
TO 掌握所有權 ROUTE
TO 掌握所有權 SCHEMA
TO 掌握所有權

適用於:SQL Server 2012 (11.x) 和更新版本。
伺服器角色
TO 掌握所有權 SERVICE
TO 掌握所有權 對稱鍵
TO 掌握所有權 TYPE
TO 掌握所有權 XML 架構集合
UMSK UNMASK

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
UP UPDATE DATABASE
UP UPDATE OBJECT
UP UPDATE SCHEMA
VW 檢視定義 應用角色
VW 檢視定義 ASSEMBLY
VW 檢視定義 非對稱鍵
VW 檢視定義

適用於:SQL Server 2012 (11.x) 和更新版本。
可用性群組
VW 檢視定義 CERTIFICATE
VW 檢視定義 CONTRACT
VW 檢視定義 DATABASE
VW 檢視定義

適用於:SQL Server 2017 (14.x) 和更新版本,以及 Azure SQL Database。
資料庫範圍憑證
VW 檢視定義 ENDPOINT
VW 檢視定義 全文目錄
VW 檢視定義 全文檢索停止清單
VW 檢視定義 LOGIN
VW 檢視定義 訊息類型
VW 檢視定義 OBJECT
VW 檢視定義 遠端服務綁定
VW 檢視定義 ROLE
VW 檢視定義 ROUTE
VW 檢視定義 SCHEMA
VW 檢視定義 搜尋房產清單
VW 檢視定義

適用於:SQL Server 2012 (11.x) 和更新版本。
伺服器角色
VW 檢視定義 SERVICE
VW 檢視定義 對稱鍵
VW 檢視定義 TYPE
VW 檢視定義 USER
VW 檢視定義 XML 架構集合
VWAD 查看任何定義 SERVER
VWCK 檢視任何數據行加密金鑰定義

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
VWCM 檢視任何資料行主要金鑰定義

適用於:SQL Server 2016 (13.x) 和更新版本。
DATABASE
VWCT 查看變更追蹤 OBJECT
VWCT 查看變更追蹤 SCHEMA
VWDB 查看任何資料庫 SERVER
VWDS 檢視資料庫狀態 DATABASE
VWSS 查看伺服器狀態 SERVER
XA 外部存取組件 SERVER
XU 不安全集會 SERVER

Remarks

sys.fn_builtin_permissions 是數據表值函式,會發出預先定義許可權階層的複本。 此階層包含涵蓋許可權。 DEFAULT結果集描述許可權階層的有向、無循環圖表,根目錄為 (class = SERVER,permission = CONTROL SERVER)。

sys.fn_builtin_permissions 不接受相互關聯的參數。

sys.fn_builtin_permissions 使用無效的類別名稱呼叫時,會傳回空的集合。

下圖顯示這些權限及其彼此間的關聯性。 一些較高等級的權限 (例如 CONTROL SERVER) 會多次列出。 本文的海報字級太小,無法閱讀。 您可以下載 PDF 格式的全尺寸資料庫引擎權限海報

Database Engine 許可權 PDF 的螢幕快照。

Permissions

需要 public 角色中的成員資格。

Examples

A. 列出所有內建許可權

使用 DEFAULT 或空字串傳回所有許可權。

SELECT * FROM sys.fn_builtin_permissions(DEFAULT);
SELECT * FROM sys.fn_builtin_permissions('');

B. 列出可在對稱金鑰上設定的許可權

指定類別以傳回該類別的所有可能許可權。

SELECT * FROM sys.fn_builtin_permissions(N'SYMMETRIC KEY');

C. 列出有 SELECT 許可權的類別

SELECT * FROM sys.fn_builtin_permissions(DEFAULT)
    WHERE permission_name = 'SELECT';

另請參閱