Поделиться через


sys.database_permissions (Transact-SQL)

Возвращает по одной строке для каждого разрешения или разрешения-исключения уровня столбца в базе данных. Для столбцов в представлении каталога содержится по одной строке на каждое разрешение, которое отличается от соответствующего разрешения уровня объекта. Если столбец имеет то же разрешение, что и соответствующий объект, строка для него отсутствует, и к этому столбцу применяется разрешение на объект.

Важное примечаниеВажно!

Разрешения уровня столбца переопределяют разрешения уровня объекта на ту же сущность.

Имя столбца

Тип данных

Описание

класс

tinyint

Указывает класс, на который существует разрешение.

0 = База данных

1 = Объект или столбец

3 = Схема

4 = Участник базы данных

5 = Сборка

6 = Тип

10 = Коллекция XML-схем

15 = Тип сообщения

16 = Контракт службы

17 = Служба

18 = Привязка удаленной службы

19 = Маршрут

23 = Полнотекстовый каталог

24 = Симметричный ключ

25 = Сертификат

26 = Асимметричный ключ

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_KEY

CERTIFICATE

ASYMMETRIC_KEY

major_id

int

Идентификатор предмета, на который существует разрешение, интерпретируется в соответствии с классом. В большинстве случаев это просто вид идентификатора, который определяет, что именно представляет собой класс. Нестандартные идентификаторы интерпретируются следующим образом:

0 = Всегда 0

1 = Object-ID

Отрицательные идентификаторы назначаются системным объектам.

minor_id

int

Вторичный идентификатор предмета, на который существует разрешение, интерпретируется согласно классу. В большинстве случаев равен нулю. Может принимать следующие значения:

1 = Идентификатор столбца (для столбцов). В противном случае — 0 (для объектов).

grantee_principal_id

int

Идентификатор участника базы данных, которому предоставлено разрешение.

grantor_principal_id

int

Идентификатор участника базы данных, который предоставил данное разрешение.

тип

char(4)

Тип разрешения в базе данных. Список типов разрешений см. в следующей таблице.

permission_name

nvarchar(128)

Имя разрешения.

state

char(1)

Состояние разрешения:

D = запретить

R = отменить

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

W = Параметр Grant With Grant

state_desc

nvarchar(60)

Описание состояния разрешения:

DENY

REVOKE

GRANT

GRANT_WITH_GRANT_OPTION

Тип разрешения

Имя разрешения

Применяется к защищаемому объекту

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

CREATE SEQUENCE

DATABASE

CRSV

CREATE SERVICE

DATABASE

CRTB

CREATE TABLE

DATABASE

CRTY

CREATE TYPE

DATABASE

CRVW

CREATE VIEW

DATABASE

CRXS

CREATE XML SCHEMA COLLECTION

DATABASE

DL

DELETE

DATABASE, OBJECT, SCHEMA

EX

EXECUTE

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

VWCT

VIEW CHANGE TRACKING

TABLE, SCHEMA

VWDS

VIEW DATABASE STATE

DATABASE

Разрешения

Любой пользователь может видеть свои собственные разрешения. Для просмотра разрешений для другого пользователя необходимо иметь разрешение VIEW DEFINITION или ALTER ANY USER либо любое разрешение на доступ к данным пользователя. Для просмотра определяемых пользователем ролей необходимо иметь разрешение ALTER ANY ROLE или быть членом роли (например, public).

Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения.. Дополнительные сведения см. в разделе Настройка видимости метаданных.

Примеры

А. Перечисление всех разрешений участников базы данных

Следующий запрос перечисляет разрешения, явно предоставленные или отклоненные для участников базы данных.

Важное примечаниеВажно!

Разрешения предопределенных ролей базы данных не отображаются в 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;

Б. Перечисление разрешений для объектов схемы в базе данных

Следующий запрос объединяет 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;

См. также

Справочник

Представления каталога безопасности (Transact-SQL)

Представления каталога (Transact-SQL)

Основные понятия

Защищаемые объекты

Иерархия разрешений (компонент Database Engine)