sys.database_permissions (Transact-SQL)

適用範圍: 是SQL Server (所有支援的版本) 是Azure SQL Database 是Azure SQL 受控執行個體 是Azure Synapse Analytics 是平行處理資料倉儲

針對資料庫中每個權限或資料行例外狀況權限,各傳回一個資料列。 針對資料行,與對應物件層級權限不同的每個權限,各有一個資料列。 如果資料行許可權與對應的物件使用權限相同,就不會有資料列,而且套用的許可權是物件的許可權。

重要

資料行層級權限會覆寫同一實體的物件層級權限。

資料行名稱 資料類型 描述
class tinyint 識別權限所在的類別。 如需詳細資訊,請參閱 sys.securable_classes (transact-sql)

0 = 資料庫
1 = 物件或資料行
3 = 結構描述
4 = 資料庫主體
5 = 元件- 適用 于: SQL Server 2008 和更新版本。
6 = 類型
10 = XML 架構集合-
適用對象:SQL Server 2008 及更新版本。
15 = 訊息類型- 適用 于: SQL Server 2008 和更新版本。
16 = 服務合約- 適用 于: SQL Server 2008 和更新版本。
17 = Service- 適用 于: SQL Server 2008 和更新版本。
18 = 遠端服務系結- 適用 于: SQL Server 2008 和更新版本。
19 = Route- 適用 于: SQL Server 2008 和更新版本。
23 = 全文檢索目錄- 適用 于: SQL Server 2008 和更新版本。
24 = 對稱金鑰- 適用 于: SQL Server 2008 和更新版本。
25 = Certificate- 適用 于: SQL Server 2008 和更新版本。
26 = 非對稱金鑰- 適用 于: SQL Server 2008 和更新版本。
29 = 全文檢索停用字詞表- 適用于: SQL Server 2008 和更新版本。
31 = 搜尋屬性清單- 適用 于: SQL Server 2008 和更新版本。
32 = 資料庫範圍認證- 適用 于: SQL Server 2008 和更新版本。
34 = External Language- 適用 于: SQL Server 2008 和更新版本。
class_desc nvarchar(60) 權限所在類別的描述。

DATABASE

OBJECT_OR_COLUMN

SCHEMA

DATABASE_PRINCIPAL

ASSEMBLY

TYPE

XML_SCHEMA_COLLECTION

MESSAGE_TYPE

SERVICE_CONTRACT

SERVICE

REMOTE_SERVICE_BINDING

ROUTE

FULLTEXT_CATALOG

SYMMETRIC_KEYS

CERTIFICATE

ASYMMETRIC_KEY

FULLTEXT STOPLIST

SEARCH PROPERTY LIST

DATABASE SCOPED CREDENTIAL

外部語言
major_id int 權限所在項目的識別碼,它是根據類別加以解譯。 通常, major_id 只是套用至類別所代表內容的識別碼種類。

0 = 資料庫本身

>0 = 使用者物件的 Object-IDs

<0 = 系統物件的 Object-IDs
minor_id int 權限所在項目的次要識別碼,它是根據類別加以解譯。 Minor_id 通常是零,因為物件的類別沒有可用的子類別。 否則,它是資料表的資料行識別碼。
grantee_principal_id int 獲授與權限的資料庫主體識別碼。
grantor_principal_id int 這些權限之同意授權者的資料庫主體識別碼。
type char (4) 資料庫權限類型。 如需權限類型的清單,請參閱下表。
permission_name nvarchar(128) 權限名稱。
state char(1) 權限狀態:

D = 拒絕

R = 撤銷

G = 授與

W = 以授與選項授與
state_desc nvarchar(60) 權限狀態的描述:

拒絕

REVOKE

GRANT

GRANT_WITH_GRANT_OPTION

資料庫權限

可能會有下列類型的許可權。

權限類型 權限名稱 適用於安全性實體
AADS ALTER ANY DATABASE EVENT SESSION DATABASE
AAMK ALTER ANY MASK DATABASE
AEDS ALTER ANY EXTERNAL DATA SOURCE DATABASE
AEFF ALTER ANY EXTERNAL FILE FORMAT DATABASE
AL ALTER APPLICATION ROLE、ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、REMOTE SERVICE BINDING、ROLE、ROUTE、SCHEMA、SERVICE、SYMMETRIC KEY、USER、XML SCHEMA COLLECTION
ALAK ALTER ANY ASYMMETRIC KEY DATABASE
ALAR ALTER ANY APPLICATION ROLE DATABASE
ALAS ALTER ANY ASSEMBLY DATABASE
ALCF ALTER ANY CERTIFICATE DATABASE
ALDS ALTER ANY DATASPACE DATABASE
ALED ALTER ANY DATABASE EVENT NOTIFICATION DATABASE
ALFT ALTER ANY FULLTEXT CATALOG DATABASE
ALMT ALTER ANY MESSAGE TYPE DATABASE
ALRL ALTER ANY ROLE DATABASE
ALRT ALTER ANY ROUTE DATABASE
ALSB ALTER ANY REMOTE SERVICE BINDING DATABASE
ALSC ALTER ANY CONTRACT DATABASE
ALSK ALTER ANY SYMMETRIC KEY DATABASE
ALSM ALTER ANY SCHEMA DATABASE
ALSV ALTER ANY SERVICE DATABASE
ALTG ALTER ANY DATABASE DDL TRIGGER DATABASE
ALUS ALTER ANY USER DATABASE
AUTH AUTHENTICATE DATABASE
BADB BACKUP DATABASE DATABASE
BALO BACKUP LOG DATABASE
CL CONTROL APPLICATION ROLE、ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、REMOTE SERVICE BINDING、ROLE、ROUTE、SCHEMA、SERVICE、SYMMETRIC KEY、TYPE、USER、XML SCHEMA COLLECTION
CO CONNECT DATABASE
CORP CONNECT REPLICATION DATABASE
CP CHECKPOINT DATABASE
CRAG CREATE AGGREGATE DATABASE
CRAK CREATE ASYMMETRIC KEY DATABASE
CRAS CREATE ASSEMBLY DATABASE
CRCF CREATE CERTIFICATE DATABASE
CRDB CREATE DATABASE DATABASE
CRDF CREATE DEFAULT DATABASE
CRED CREATE DATABASE DDL EVENT NOTIFICATION DATABASE
CRFN CREATE FUNCTION DATABASE
CRFT CREATE FULLTEXT CATALOG DATABASE
CRMT CREATE MESSAGE TYPE DATABASE
CRPR CREATE PROCEDURE DATABASE
CRQU CREATE QUEUE DATABASE
CRRL CREATE ROLE DATABASE
CRRT CREATE ROUTE DATABASE
CRRU CREATE RULE DATABASE
CRSB CREATE REMOTE SERVICE BINDING DATABASE
CRSC CREATE CONTRACT DATABASE
CRSK CREATE SYMMETRIC KEY DATABASE
CRSM CREATE SCHEMA DATABASE
CRSN CREATE SYNONYM DATABASE
CRSO 適用對象:SQL Server 2012 (11.x) 及更新版本。

CREATE SEQUENCE
DATABASE
CRSV CREATE SERVICE DATABASE
CRTB CREATE TABLE DATABASE
CRTY CREATE TYPE DATABASE
CRVW CREATE VIEW DATABASE
CRXS 適用對象:SQL Server 2008 及更新版本。

CREATE XML SCHEMA COLLECTION
DATABASE
DABO ADMINISTER DATABASE BULK OPERATIONS DATABASE
DL DELETE DATABASE、OBJECT、SCHEMA
EAES EXECUTE ANY EXTERNAL SCRIPT DATABASE
EX 執行 CREATE 陳述式之前,請先執行 ASSEMBLY、DATABASE、OBJECT、SCHEMA、TYPE、XML SCHEMA COLLECTION
IM IMPERSONATE USER
IN INSERT DATABASE、OBJECT、SCHEMA
RC RECEIVE OBJECT
RF REFERENCES ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、SCHEMA、SYMMETRIC KEY、TYPE、XML SCHEMA COLLECTION
SL SELECT DATABASE、OBJECT、SCHEMA
SN SEND SERVICE
SPLN SHOWPLAN DATABASE
SUQN SUBSCRIBE QUERY NOTIFICATIONS DATABASE
TO TAKE OWNERSHIP ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、REMOTE SERVICE BINDING、ROLE、ROUTE、SCHEMA、SERVICE、SYMMETRIC KEY、TYPE、XML SCHEMA COLLECTION
UP UPDATE DATABASE、OBJECT、SCHEMA
VW VIEW DEFINITION APPLICATION ROLE、ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、REMOTE SERVICE BINDING、ROLE、ROUTE、SCHEMA、SERVICE、SYMMETRIC KEY、TYPE、USER、XML SCHEMA COLLECTION
VWCK VIEW ANY COLUMN ENCRYPTION KEY DEFINITION DATABASE
VWCM VIEW ANY COLUMN MASTER KEY DEFINITION DATABASE
VWCT VIEW CHANGE TRACKING TABLE、SCHEMA
VWDS VIEW DATABASE STATE DATABASE

權限

任何使用者都可以查看他們自己的權限。 若要查看其他使用者的權限,則需要 VIEW DEFINITION、ALTER ANY USER 或使用者的任何權限。 若要查看使用者定義角色,則需要 ALTER ANY ROLE 或該角色的成員資格 (例如 Public)。

目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration

範例

A:列出資料庫主體的所有權限

下列查詢會列出已明確授與或拒絕資料庫主體的權限。

重要

固定資料庫角色的權限並未出現在 sys.database_permissions 中。 因此,資料庫主體可能仍有其他未列於此處的權限。

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc, pe.permission_name  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id;  

B:列出資料庫內結構描述物件的權限

下列查詢會聯結 sys.database_principals 與 sys.database_permissions 以及 sys.objects 與 sys.schemas,藉此列出已授與或拒絕特定結構描述物件的權限。

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc,   
    pe.permission_name, s.name + '.' + o.name AS ObjectName  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id  
JOIN sys.objects AS o  
    ON pe.major_id = o.object_id  
JOIN sys.schemas AS s  
    ON o.schema_id = s.schema_id;  

另請參閱

安全性實體
權限階層 (Database Engine)
安全性目錄檢視 (Transact-SQL)
目錄檢視 (Transact-SQL)