sys.database_permissions (Transact-SQL)sys.database_permissions (Transact-SQL)

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data WarehouseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data Warehouse

Возвращает по одной строке для каждого разрешения или разрешения-исключения уровня столбца в базе данных.Returns a row for every permission or column-exception permission in the database. Для столбцов в представлении каталога содержится по одной строке на каждое разрешение, которое отличается от соответствующего разрешения уровня объекта.For columns, there is a row for every permission that is different from the corresponding object-level permission. Если разрешение столбца совпадает с разрешением соответствующего объекта, то для него не существует строки и к примененному разрешению применяется объект.If the column permission is the same as the corresponding object permission, there is no row for it and the permission applied is that of the object.

Важно!

Разрешения уровня столбца переопределяют разрешения уровня объекта на ту же сущность.Column-level permissions override object-level permissions on the same entity.

Имя столбцаColumn name Тип данныхData type ОписаниеDescription
classclass tinyinttinyint Указывает класс, на который существует разрешение.Identifies class on which permission exists.

0 = база данных;0 = Database
1 = объект или столбец1 = Object or Column
3 = схема3 = Schema
4 = Участник базы данных4 = Database Principal
5 = сборка — применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.5 = Assembly - Applies to: SQL Server 2008SQL Server 2008 and later.
6 = Тип6 = Type
10 = коллекция схем XML —10 = XML Schema Collection -
Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.
15 = тип сообщения — применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.15 = Message Type - Applies to: SQL Server 2008SQL Server 2008 and later.
16 = контракт службы — применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.16 = Service Contract - Applies to: SQL Server 2008SQL Server 2008 and later.
17 = служба — применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.17 = Service - Applies to: SQL Server 2008SQL Server 2008 and later.
18 = привязка удаленной службы — применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.18 = Remote Service Binding - Applies to: SQL Server 2008SQL Server 2008 and later.
19 = маршрут — применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.19 = Route - Applies to: SQL Server 2008SQL Server 2008 and later.
23 = полнотекстовый каталог — применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.23 =Full-Text Catalog - Applies to: SQL Server 2008SQL Server 2008 and later.
24 = симметричный ключ — применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.24 = Symmetric Key - Applies to: SQL Server 2008SQL Server 2008 and later.
25 = сертификат применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.25 = Certificate - Applies to: SQL Server 2008SQL Server 2008 and later.
26 = асимметричный ключ — применяется к: SQL Server 2008SQL Server 2008 и более поздним версиям.26 = Asymmetric Key - Applies to: SQL Server 2008SQL Server 2008 and later.
class_descclass_desc nvarchar(60)nvarchar(60) Описание класса, на который существует разрешение.Description of class on which permission exists.

DATABASEDATABASE

OBJECT_OR_COLUMNOBJECT_OR_COLUMN

SCHEMASCHEMA

DATABASE_PRINCIPALDATABASE_PRINCIPAL

ASSEMBLYASSEMBLY

TYPETYPE

XML_SCHEMA_COLLECTIONXML_SCHEMA_COLLECTION

MESSAGE_TYPEMESSAGE_TYPE

SERVICE_CONTRACTSERVICE_CONTRACT

SERVICESERVICE

REMOTE_SERVICE_BINDINGREMOTE_SERVICE_BINDING

ROUTEROUTE

FULLTEXT_CATALOGFULLTEXT_CATALOG

SYMMETRIC_KEYSSYMMETRIC_KEYS

CERTIFICATECERTIFICATE

ASYMMETRIC_KEYASYMMETRIC_KEY
major_idmajor_id intint Идентификатор предмета, на который существует разрешение, интерпретируется в соответствии с классом.ID of thing on which permission exists, interpreted according to class. Обычно major_id — это просто тип идентификатора, который применяется к представлению класса.Usually, the major_id is simply the kind of ID that applies to what the class represents.

0 = сама база данных;0 = The database itself

>0 = Object-ID для пользовательских объектов>0 = Object-IDs for user objects

<0 = Object-ID для системных объектов<0 = Object-IDs for system objects
minor_idminor_id intint Вторичный идентификатор предмета, на который существует разрешение, интерпретируется согласно классу.Secondary-ID of thing on which permission exists, interpreted according to class. Часто minor_id равен нулю, так как для класса объекта нет доступной подкатегории.Often, the minor_id is zero, because there is no subcategory available for the class of object. В противном случае это идентификатор столбца таблицы.Otherwise, it is the Column-ID of a table.
grantee_principal_idgrantee_principal_id intint Идентификатор участника базы данных, которому предоставлено разрешение.Database principal ID to which the permissions are granted.
grantor_principal_idgrantor_principal_id intint Идентификатор участника базы данных, который предоставил данное разрешение.Database principal ID of the grantor of these permissions.
typetype char (4)char(4) Тип разрешения в базе данных.Database permission type. Список типов разрешений см. в следующей таблице.For a list of permission types, see the next table.
permission_namepermission_name nvarchar(128)nvarchar(128) Имя разрешения.Permission name.
statestate char (1)char(1) Состояние разрешения:Permission state:

D = запретитьD = Deny

R = отменитьR = Revoke

G = предоставитьG = Grant

W = параметр Grant With GrantW = Grant With Grant Option
state_descstate_desc nvarchar(60)nvarchar(60) Описание состояния разрешения:Description of permission state:

DENYDENY

REVOKEREVOKE

GRANTGRANT

GRANT_WITH_GRANT_OPTIONGRANT_WITH_GRANT_OPTION

Разрешения базы данныхDatabase Permissions

Возможны следующие типы разрешений.The following types of permissions are possible.

Тип разрешенияPermission type Имя разрешенияPermission name Применяется к защищаемому объектуApplies to securable
AADSAADS ALTER ANY DATABASE EVENT SESSIONALTER ANY DATABASE EVENT SESSION DATABASEDATABASE
AAMKAAMK ALTER ANY MASKALTER ANY MASK DATABASEDATABASE
AEDSAEDS ALTER ANY EXTERNAL DATA SOURCEALTER ANY EXTERNAL DATA SOURCE DATABASEDATABASE
AEFFAEFF ALTER ANY EXTERNAL FILE FORMATALTER ANY EXTERNAL FILE FORMAT DATABASEDATABASE
ALAL ALTERALTER 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 COLLECTIONAPPLICATION 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
ALAKALAK ALTER ANY ASYMMETRIC KEYALTER ANY ASYMMETRIC KEY DATABASEDATABASE
ALARALAR ALTER ANY APPLICATION ROLEALTER ANY APPLICATION ROLE DATABASEDATABASE
ALASALAS ALTER ANY ASSEMBLYALTER ANY ASSEMBLY DATABASEDATABASE
ALCFALCF ALTER ANY CERTIFICATEALTER ANY CERTIFICATE DATABASEDATABASE
ALDSALDS ALTER ANY DATASPACEALTER ANY DATASPACE DATABASEDATABASE
ALEDALED ALTER ANY DATABASE EVENT NOTIFICATIONALTER ANY DATABASE EVENT NOTIFICATION DATABASEDATABASE
ALFTALFT ALTER ANY FULLTEXT CATALOGALTER ANY FULLTEXT CATALOG DATABASEDATABASE
ALMTALMT ALTER ANY MESSAGE TYPEALTER ANY MESSAGE TYPE DATABASEDATABASE
ALRLALRL ALTER ANY ROLEALTER ANY ROLE DATABASEDATABASE
ALRTALRT ALTER ANY ROUTEALTER ANY ROUTE DATABASEDATABASE
ALSBALSB ALTER ANY REMOTE SERVICE BINDINGALTER ANY REMOTE SERVICE BINDING DATABASEDATABASE
ALSCALSC ALTER ANY CONTRACTALTER ANY CONTRACT DATABASEDATABASE
ALSKALSK ALTER ANY SYMMETRIC KEYALTER ANY SYMMETRIC KEY DATABASEDATABASE
ALSMALSM ALTER ANY SCHEMAALTER ANY SCHEMA DATABASEDATABASE
ALSVALSV ALTER ANY SERVICEALTER ANY SERVICE DATABASEDATABASE
ALTGALTG ALTER ANY DATABASE DDL TRIGGERALTER ANY DATABASE DDL TRIGGER DATABASEDATABASE
ALUSALUS ALTER ANY USERALTER ANY USER DATABASEDATABASE
AUTHAUTH AUTHENTICATEAUTHENTICATE DATABASEDATABASE
BADBBADB BACKUP DATABASEBACKUP DATABASE DATABASEDATABASE
BALOBALO BACKUP LOGBACKUP LOG DATABASEDATABASE
CLCL CONTROLCONTROL 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 COLLECTIONAPPLICATION 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
COCO CONNECTCONNECT DATABASEDATABASE
CORPCORP CONNECT REPLICATIONCONNECT REPLICATION DATABASEDATABASE
CPCP CHECKPOINTCHECKPOINT DATABASEDATABASE
CRAGCRAG CREATE AGGREGATECREATE AGGREGATE DATABASEDATABASE
CRAKCRAK CREATE ASYMMETRIC KEYCREATE ASYMMETRIC KEY DATABASEDATABASE
CRASCRAS CREATE ASSEMBLYCREATE ASSEMBLY DATABASEDATABASE
CRCFCRCF CREATE CERTIFICATECREATE CERTIFICATE DATABASEDATABASE
CRDBCRDB CREATE DATABASECREATE DATABASE DATABASEDATABASE
CRDFCRDF CREATE DEFAULTCREATE DEFAULT DATABASEDATABASE
CREDCRED CREATE DATABASE DDL EVENT NOTIFICATIONCREATE DATABASE DDL EVENT NOTIFICATION DATABASEDATABASE
CRFNCRFN CREATE FUNCTIONCREATE FUNCTION DATABASEDATABASE
CRFTCRFT CREATE FULLTEXT CATALOGCREATE FULLTEXT CATALOG DATABASEDATABASE
CRMTCRMT CREATE MESSAGE TYPECREATE MESSAGE TYPE DATABASEDATABASE
CRPRCRPR CREATE PROCEDURECREATE PROCEDURE DATABASEDATABASE
CRQUCRQU CREATE QUEUECREATE QUEUE DATABASEDATABASE
CRRLCRRL CREATE ROLECREATE ROLE DATABASEDATABASE
CRRTCRRT CREATE ROUTECREATE ROUTE DATABASEDATABASE
CRRUCRRU CREATE RULECREATE RULE DATABASEDATABASE
CRSBCRSB CREATE REMOTE SERVICE BINDINGCREATE REMOTE SERVICE BINDING DATABASEDATABASE
CRSCCRSC CREATE CONTRACTCREATE CONTRACT DATABASEDATABASE
CRSKCRSK CREATE SYMMETRIC KEYCREATE SYMMETRIC KEY DATABASEDATABASE
CRSMCRSM CREATE SCHEMACREATE SCHEMA DATABASEDATABASE
CRSNCRSN CREATE SYNONYMCREATE SYNONYM DATABASEDATABASE
CRSOCRSO Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

CREATE SEQUENCECREATE SEQUENCE
DATABASEDATABASE
CRSVCRSV CREATE SERVICECREATE SERVICE DATABASEDATABASE
CRTBCRTB CREATE TABLECREATE TABLE DATABASEDATABASE
CRTYCRTY CREATE TYPECREATE TYPE DATABASEDATABASE
CRVWCRVW CREATE VIEWCREATE VIEW DATABASEDATABASE
CRXSCRXS Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

CREATE XML SCHEMA COLLECTIONCREATE XML SCHEMA COLLECTION
DATABASEDATABASE
DABODABO ADMINISTER DATABASE BULK OPERATIONSADMINISTER DATABASE BULK OPERATIONS DATABASEDATABASE
DLDL DELETEDELETE DATABASE, OBJECT, SCHEMADATABASE, OBJECT, SCHEMA
EAESEAES EXECUTE ANY EXTERNAL SCRIPTEXECUTE ANY EXTERNAL SCRIPT DATABASEDATABASE
EXEX EXECUTEEXECUTE ASSEMBLY, DATABASE, OBJECT, SCHEMA, TYPE, XML SCHEMA COLLECTIONASSEMBLY, DATABASE, OBJECT, SCHEMA, TYPE, XML SCHEMA COLLECTION
IMIM IMPERSONATEIMPERSONATE ПользовательUSER
ININ INSERTINSERT DATABASE, OBJECT, SCHEMADATABASE, OBJECT, SCHEMA
RCRC RECEIVERECEIVE OBJECTOBJECT
RF;RF REFERENCESREFERENCES ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, SCHEMA, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTIONASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, SCHEMA, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION
SLSL SELECTSELECT DATABASE, OBJECT, SCHEMADATABASE, OBJECT, SCHEMA
SNSN SENDSEND SERVICESERVICE
SPLNSPLN SHOWPLANSHOWPLAN DATABASEDATABASE
SUQNSUQN SUBSCRIBE QUERY NOTIFICATIONSSUBSCRIBE QUERY NOTIFICATIONS DATABASEDATABASE
TOTO TAKE OWNERSHIPTAKE OWNERSHIP ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTIONASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION
UPUP UPDATEUPDATE DATABASE, OBJECT, SCHEMADATABASE, OBJECT, SCHEMA
VWVW VIEW DEFINITIONVIEW 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 COLLECTIONAPPLICATION 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
VWCKVWCK VIEW ANY COLUMN ENCRYPTION KEY DEFINITIONVIEW ANY COLUMN ENCRYPTION KEY DEFINITION DATABASEDATABASE
ввкмVWCM VIEW ANY COLUMN MASTER KEY DEFINITIONVIEW ANY COLUMN MASTER KEY DEFINITION DATABASEDATABASE
VWCTVWCT VIEW CHANGE TRACKINGVIEW CHANGE TRACKING TABLE, SCHEMATABLE, SCHEMA
VWDSVWDS VIEW DATABASE STATEVIEW DATABASE STATE DATABASEDATABASE

РазрешенияPermissions

Любой пользователь может видеть свои собственные разрешения.Any user can see their own permissions. Для просмотра разрешений для другого пользователя необходимо иметь разрешение VIEW DEFINITION или ALTER ANY USER либо любое разрешение на доступ к данным пользователя.To see permissions for other users, requires VIEW DEFINITION, ALTER ANY USER, or any permission on a user. Для просмотра определяемых пользователем ролей необходимо иметь разрешение ALTER ANY ROLE или быть членом роли (например, public).To see user-defined roles, requires ALTER ANY ROLE, or membership in the role (such as public).

Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения.The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. Дополнительные сведения см. в разделе Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

ПримерыExamples

Ответ. Перечисление всех разрешений участников базы данныхA: Listing all the permissions of database principals

Следующий запрос перечисляет разрешения, явно предоставленные или отклоненные для участников базы данных.The following query lists the permissions explicitly granted or denied to database principals.

Важно!

Разрешения предопределенных ролей базы данных не отображаются в sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Поэтому участники базы данных могут иметь дополнительные разрешения, не перечисленные здесь.Therefore, database principals may have additional permissions not listed here.

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: Listing permissions on schema objects within a database

Следующий запрос объединяет sys.database_principals и sys.database_permissions с sys.objects и sys.schemas, чтобы перечислить разрешения, предоставленные или отклоненные для определенных объектов схемы.The following query joins sys.database_principals and sys.database_permissions to sys.objects and sys.schemas to list permissions granted or denied to specific schema objects.

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;  

См. такжеSee Also

Securables Securables
Иерархия разрешений (ядро СУБД) Permissions Hierarchy (Database Engine)
Представления каталога безопасности (Transact-SQL) Security Catalog Views (Transact-SQL)
Представления каталога (Transact-SQL)Catalog Views (Transact-SQL)