sys.server_permissions (Transact-SQL)
Возвращает по одной строке на каждое разрешение на уровне сервера.
Имя столбца |
Тип данных |
Описание |
---|---|---|
класс |
tinyint |
Определяет класс субъекта, в котором существует разрешение. 100 = Сервер 101 = Сервер-участник 105 = Конечная точка |
class_desc |
nvarchar(60) |
Описание класса, на который существует разрешение.
|
major_id |
int |
Идентификатор защищаемого объекта, на который существует разрешение, интерпретируемое согласно классу объекта. Как правило, это просто идентификатор, который применяется к тому, что представляет собой этот класс. Интерпретация нестандартных значений следующая: 100 = всегда 0 |
minor_id |
int |
Вторичный идентификатор субъекта, в котором существует разрешение, интерпретируемое согласно классу объекта. |
grantee_principal_id |
int |
Идентификатор сервера-участника, на который предоставляются разрешения. |
grantor_principal_id |
int |
Идентификатор сервера-участника, который предоставляет эти разрешения. |
тип |
char(4) |
Тип разрешения сервера. Список типов разрешений см. в следующей таблице. |
permission_name |
nvarchar(128) |
Имя разрешения. |
state |
char(1) |
Состояние разрешения: D = запретить R = отменить G = предоставить W = Разрешить с аргументом Grant |
state_desc |
nvarchar(60) |
Описание состояния разрешения: DENY REVOKE GRANT GRANT_WITH_GRANT_OPTION |
Тип разрешения |
Имя разрешения |
Применяется к защищаемому объекту |
---|---|---|
ADBO |
ADMINISTER BULK OPERATIONS |
SERVER |
AL |
ALTER |
ENDPOINT, LOGIN |
ALCD |
ALTER ANY CREDENTIAL |
SERVER |
ALCO |
ALTER ANY CONNECTION |
SERVER |
ALDB |
ALTER ANY DATABASE |
SERVER |
ALES |
ALTER ANY EVENT NOTIFICATION |
SERVER |
ALHE |
ALTER ANY ENDPOINT |
SERVER |
ALLG |
ALTER ANY LOGIN |
SERVER |
ALLS |
ALTER ANY LINKED SERVER |
SERVER |
ALRS |
ALTER RESOURCES |
SERVER |
ALSS |
ALTER SERVER STATE |
SERVER |
ALST |
ALTER SETTINGS |
SERVER |
ALTR |
ALTER TRACE |
SERVER |
AUTH |
AUTHENTICATE SERVER |
SERVER |
CL |
CONTROL |
ENDPOINT, LOGIN |
CL |
CONTROL SERVER |
SERVER |
CO |
CONNECT |
ENDPOINT |
COSQ |
CONNECT SQL |
SERVER |
CRDB |
CREATE ANY DATABASE |
SERVER |
CRDE |
CREATE DDL EVENT NOTIFICATION |
SERVER |
CRHE |
CREATE ENDPOINT |
SERVER |
CRTE |
CREATE TRACE EVENT NOTIFICATION |
SERVER |
IM |
IMPERSONATE |
LOGIN |
SHDN |
SHUTDOWN |
SERVER |
TO |
TAKE OWNERSHIP |
ENDPOINT |
VW |
VIEW DEFINITION |
ENDPOINT, LOGIN |
VWAD |
VIEW ANY DEFINITION |
SERVER |
VWDB |
VIEW ANY DATABASE |
SERVER |
VWSS |
VIEW SERVER STATE |
SERVER |
XA |
EXTERNAL ACCESS |
SERVER |
Разрешения
Любой пользователь может видеть свои собственные разрешения. Для просмотра разрешений, относящихся к другим именам входа, требуется разрешение VIEW DEFINITION или ALTER ANY LOGIN либо любое разрешение на имя входа. Для просмотра определяемых пользователем ролей сервера необходимо иметь разрешение ALTER ANY SERVER ROLE или быть членом роли.
Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения.. Дополнительные сведения см. в разделе Настройка видимости метаданных.
Примеры
Следующий запрос перечисляет разрешения, явно предоставленные или отклоненные для участников на уровне сервера.
Важно! |
---|
Разрешения предопределенных ролей сервера не отображаются в sys.server_permissions. Поэтому участники на уровне сервера могут иметь дополнительные разрешения, не перечисленные здесь. |
SELECT pr.principal_id, pr.name, pr.type_desc,
pe.state_desc, pe.permission_name
FROM sys.server_principals AS pr
JOIN sys.server_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id;
См. также
Справочник
Представления каталога безопасности (Transact-SQL)
Представления каталога (Transact-SQL)