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


sys.fn_builtin_permissions (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure базе данных SQL в Microsoft Fabric

Функция возвращает описание иерархии встроенных разрешений сервера. sys.fn_builtin_permissionsможно вызывать только в SQL Server и База данных SQL Azure, и он возвращает все разрешения независимо от того, поддерживаются ли они на текущей платформе. Большинство разрешений применяются ко всем платформам, но некоторые из них — только к определенным. Например, разрешения на уровне сервера нельзя предоставить в База данных SQL. Сведения о том, какие платформы поддерживают каждое разрешение, см. в разделе "Разрешения" (ядро СУБД).

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ DEFAULT | NULL ]

При вызове с параметром DEFAULT (без кавычки) функция вернет полный список встроенных разрешений.

ЗНАЧЕНИЕ NULL эквивалентно DEFAULT.

empty_string

Эквивалентен DEFAULT.

"<securable_class>"

При вызове с именем одного защищаемого класса возвращаются все разрешения, sys.fn_builtin_permissions применяемые к классу. '<securable_class>' — строковый литерал типа nvarchar(60), требующий кавычек.

Возвращаемые таблицы

Имя столбца Тип данных Параметры сортировки Description
class_desc nvarchar(60) Параметры сортировки сервера Описание защищаемого класса.
permission_name nvarchar(60) Параметры сортировки сервера Имя разрешения.
type varchar(4) Параметры сортировки сервера Код компактных типов разрешений. См. таблицу далее.
covering_permission_name nvarchar(60) Параметры сортировки сервера Если значение не NULL, то это имя разрешения на данный класс, который содержит в себе другие разрешения данного класса.
parent_class_desc nvarchar(60) Параметры сортировки сервера Если значение не NULL, то это имя родительского класса, который содержит текущий класс.
parent_covering_permission_name nvarchar(60) Параметры сортировки сервера Если значение не NULL, то это имя разрешения на родительский класс, который содержит в себе другие разрешения класса.

Типы разрешений

Тип разрешения Имя разрешения Применяется к защищаемому объекту или классу
AADS ALTER ANY DATABASE EVENT SESSION

Область применения: SQL Server 2014 (12.x) и более поздних версий.
DATABASE
AAES ALTER ANY EVENT SESSION SERVER
AAMK ALTER ANY MASK

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
ADBO ADMINISTER BULK OPERATIONS SERVER
AEDS ALTER ANY EXTERNAL DATA SOURCE

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
AEFF ALTER ANY EXTERNAL FILE FORMAT

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
AL ИЗМЕНИТЬ APPLICATION ROLE
AL ИЗМЕНИТЬ ASSEMBLY
AL ИЗМЕНИТЬ

Применимо: SQL Server 2012 (11.x) и более поздних версий.
AVAILABILITY GROUP
AL ИЗМЕНИТЬ ASYMMETRIC KEY
AL ИЗМЕНИТЬ СЕРТИФИКАТ
AL ИЗМЕНИТЬ CONTRACT
AL ИЗМЕНИТЬ DATABASE
AL ИЗМЕНИТЬ

Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure.
DATABASE SCOPED CREDENTIAL
AL ИЗМЕНИТЬ КОНЕЧНАЯ ТОЧКА
AL ИЗМЕНИТЬ FULLTEXT CATALOG
AL ИЗМЕНИТЬ FULLTEXT STOPLIST
AL ИЗМЕНИТЬ ВХОД
AL ИЗМЕНИТЬ MESSAGE TYPE
AL ИЗМЕНИТЬ OBJECT
AL ИЗМЕНИТЬ REMOTE SERVICE BINDING
AL ИЗМЕНИТЬ РОЛЬ
AL ИЗМЕНИТЬ ROUTE
AL ИЗМЕНИТЬ СХЕМА
AL ИЗМЕНИТЬ SEARCH PROPERTY LIST
AL ИЗМЕНИТЬ

Применимо: SQL Server 2012 (11.x) и более поздних версий.
РОЛЬ СЕРВЕРА
AL ИЗМЕНИТЬ SERVICE
AL ИЗМЕНИТЬ SYMMETRIC KEY
AL ИЗМЕНИТЬ Пользователь
AL ИЗМЕНИТЬ XML SCHEMA COLLECTION
ALAA ALTER ANY SERVER AUDIT SERVER
ALAG ALTER ANY AVAILABILITY GROUP

Применимо: SQL Server 2012 (11.x) и более поздних версий.
SERVER
ALAK ALTER ANY ASYMMETRIC KEY DATABASE
ALAR ALTER ANY APPLICATION ROLE DATABASE
ALAS ALTER ANY ASSEMBLY DATABASE
ALCD ALTER ANY CREDENTIAL SERVER
ALCF ALTER ANY CERTIFICATE DATABASE
ALCK ALTER ANY COLUMN ENCRYPTION KEY

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
ALCM ALTER ANY COLUMN MASTER KEY

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
ALCO ALTER ANY CONNECTION SERVER
ALDA ALTER ANY DATABASE AUDIT DATABASE
ALDB ALTER ANY DATABASE SERVER
ALDC ALTER ANY DATABASE SCOPED CONFIGURATION

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
ALDS ALTER ANY DATASPACE DATABASE
ALED ALTER ANY DATABASE EVENT NOTIFICATION DATABASE
ALES ALTER ANY EVENT NOTIFICATION SERVER
ALFT ALTER ANY FULLTEXT CATALOG DATABASE
ALHE ALTER ANY ENDPOINT SERVER
ALLG ALTER ANY LOGIN SERVER
ALLS ALTER ANY LINKED SERVER SERVER
ALMT ALTER ANY MESSAGE TYPE DATABASE
ALRL ALTER ANY ROLE DATABASE
ALRS ALTER RESOURCES SERVER
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
ALSP ALTER ANY SECURITY POLICY

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
ALSR ALTER ANY SERVER ROLE

Применимо: SQL Server 2012 (11.x) и более поздних версий.
SERVER
ALSS ALTER SERVER STATE SERVER
ALST ALTER SETTINGS SERVER
ALSV ALTER ANY SERVICE DATABASE
ALTG ALTER ANY DATABASE DDL TRIGGER DATABASE
ALTR ALTER TRACE SERVER
ALUS ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ DATABASE
АУТЕНТИФИКАЦИЯ AUTHENTICATE DATABASE
АУТЕНТИФИКАЦИЯ AUTHENTICATE SERVER SERVER
BADB BACKUP DATABASE DATABASE
BALO BACKUP LOG DATABASE
CADB CONNECT ANY DATABASE

Область применения: SQL Server 2014 (12.x) и более поздних версий.
SERVER
CL ПРОИЗВОДИТЕЛЬНОСТИ APPLICATION ROLE
CL ПРОИЗВОДИТЕЛЬНОСТИ ASSEMBLY
CL ПРОИЗВОДИТЕЛЬНОСТИ ASYMMETRIC KEY
CL ПРОИЗВОДИТЕЛЬНОСТИ

Применимо: SQL Server 2012 (11.x) и более поздних версий.
AVAILABILITY GROUP
CL ПРОИЗВОДИТЕЛЬНОСТИ СЕРТИФИКАТ
CL ПРОИЗВОДИТЕЛЬНОСТИ CONTRACT
CL ПРОИЗВОДИТЕЛЬНОСТИ DATABASE
CL ПРОИЗВОДИТЕЛЬНОСТИ

Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure.
DATABASE SCOPED CREDENTIAL
CL ПРОИЗВОДИТЕЛЬНОСТИ КОНЕЧНАЯ ТОЧКА
CL ПРОИЗВОДИТЕЛЬНОСТИ FULLTEXT CATALOG
CL ПРОИЗВОДИТЕЛЬНОСТИ FULLTEXT STOPLIST
CL ПРОИЗВОДИТЕЛЬНОСТИ ВХОД
CL ПРОИЗВОДИТЕЛЬНОСТИ MESSAGE TYPE
CL ПРОИЗВОДИТЕЛЬНОСТИ OBJECT
CL ПРОИЗВОДИТЕЛЬНОСТИ REMOTE SERVICE BINDING
CL ПРОИЗВОДИТЕЛЬНОСТИ РОЛЬ
CL ПРОИЗВОДИТЕЛЬНОСТИ ROUTE
CL ПРОИЗВОДИТЕЛЬНОСТИ СХЕМА
CL ПРОИЗВОДИТЕЛЬНОСТИ SEARCH PROPERTY LIST
CL CONTROL SERVER SERVER
CL ПРОИЗВОДИТЕЛЬНОСТИ

Применимо: SQL Server 2012 (11.x) и более поздних версий.
РОЛЬ СЕРВЕРА
CL ПРОИЗВОДИТЕЛЬНОСТИ SERVICE
CL ПРОИЗВОДИТЕЛЬНОСТИ SYMMETRIC KEY
CL ПРОИЗВОДИТЕЛЬНОСТИ ТИП
CL ПРОИЗВОДИТЕЛЬНОСТИ Пользователь
CL ПРОИЗВОДИТЕЛЬНОСТИ XML SCHEMA COLLECTION
CO ПОДКЛЮЧЕНИЕ DATABASE
CO ПОДКЛЮЧЕНИЕ КОНЕЧНАЯ ТОЧКА
CORP CONNECT REPLICATION DATABASE
COSQ CONNECT SQL SERVER
CP CHECKPOINT DATABASE
CRAC CREATE AVAILABILITY GROUP

Применимо: SQL Server 2012 (11.x) и более поздних версий.
SERVER
CRAG CREATE AGGREGATE DATABASE
CRAK CREATE ASYMMETRIC KEY DATABASE
CRAS CREATE ASSEMBLY DATABASE
CRCF CREATE CERTIFICATE DATABASE
CRDB CREATE ANY DATABASE SERVER
CRDB СОЗДАТЬ БАЗУ ДАННЫХ DATABASE
CRDE CREATE DDL EVENT NOTIFICATION SERVER
CRDF CREATE DEFAULT DATABASE
CRED CREATE DATABASE DDL EVENT NOTIFICATION DATABASE
CRFN CREATE FUNCTION DATABASE
CRFT CREATE FULLTEXT CATALOG DATABASE
CRHE CREATE ENDPOINT … SERVER
CRMT CREATE MESSAGE TYPE DATABASE
CRPR СОЗДАТЬ ПРОЦЕДУРУ 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 СХЕМА
CRSR CREATE SERVER ROLE

Применимо: SQL Server 2012 (11.x) и более поздних версий.
SERVER
CRSV CREATE SERVICE DATABASE
CRTB СОЗДАТЬ ТАБЛИЦУ DATABASE
CRTE CREATE TRACE EVENT NOTIFICATION SERVER
CRTY СОЗДАТЬ ТИП DATABASE
CRVW СОЗДАТЬ ПРЕДСТАВЛЕНИЕ DATABASE
CRXS CREATE XML SCHEMA COLLECTION DATABASE
DABO ADMINISTER DATABASE BULK OPERATIONS

Область применения: База данных SQL.
DATABASE
DL DELETE DATABASE
DL DELETE OBJECT
DL DELETE СХЕМА
EAES EXECUTE ANY EXTERNAL SCRIPT

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
EX ВЫПОЛНИТЬ DATABASE
EX ВЫПОЛНИТЬ OBJECT
EX ВЫПОЛНИТЬ СХЕМА
EX ВЫПОЛНИТЬ ТИП
EX ВЫПОЛНИТЬ XML SCHEMA COLLECTION
IAL IMPERSONATE ANY LOGIN

Область применения: SQL Server 2014 (12.x) и более поздних версий.
SERVER
"IM" (Обмен мгновенными сообщениями); IMPERSONATE ВХОД
"IM" (Обмен мгновенными сообщениями); IMPERSONATE Пользователь
В ВСТАВИТЬ DATABASE
В ВСТАВИТЬ OBJECT
В ВСТАВИТЬ СХЕМА
KIDC KILL DATABASE CONNECTION

Область применения: База данных SQL Azure.
DATABASE
Ролевой центр ПРИЕМ OBJECT
RF ССЫЛКИ ASSEMBLY
RF ССЫЛКИ ASYMMETRIC KEY
RF ССЫЛКИ СЕРТИФИКАТ
RF ССЫЛКИ CONTRACT
RF ССЫЛКИ DATABASE
RF ССЫЛКИ

Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure.
DATABASE SCOPED CREDENTIAL
RF ССЫЛКИ FULLTEXT CATALOG
RF ССЫЛКИ FULLTEXT STOPLIST
RF ССЫЛКИ SEARCH PROPERTY LIST
RF ССЫЛКИ MESSAGE TYPE
RF ССЫЛКИ OBJECT
RF ССЫЛКИ СХЕМА
RF ССЫЛКИ SYMMETRIC KEY
RF ССЫЛКИ ТИП
RF ССЫЛКИ XML SCHEMA COLLECTION
SHDN SHUTDOWN SERVER
SL SELECT DATABASE
SL SELECT OBJECT
SL SELECT СХЕМА
SN SEND SERVICE
SPLN SHOWPLAN DATABASE
SUQN SUBSCRIBE QUERY NOTIFICATIONS DATABASE
SUS SELECT ALL USER SECURABLES

Область применения: SQL Server 2014 (12.x) и более поздних версий.
SERVER
TO TAKE OWNERSHIP ASSEMBLY
TO TAKE OWNERSHIP ASYMMETRIC KEY
TO TAKE OWNERSHIP

Применимо: SQL Server 2012 (11.x) и более поздних версий.
AVAILABILITY GROUP
TO TAKE OWNERSHIP СЕРТИФИКАТ
TO TAKE OWNERSHIP CONTRACT
TO TAKE OWNERSHIP DATABASE
TO TAKE OWNERSHIP

Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure.
DATABASE SCOPED CREDENTIAL
TO TAKE OWNERSHIP КОНЕЧНАЯ ТОЧКА
TO TAKE OWNERSHIP FULLTEXT CATALOG
TO TAKE OWNERSHIP FULLTEXT STOPLIST
TO TAKE OWNERSHIP SEARCH PROPERTY LIST
TO TAKE OWNERSHIP MESSAGE TYPE
TO TAKE OWNERSHIP OBJECT
TO TAKE OWNERSHIP REMOTE SERVICE BINDING
TO TAKE OWNERSHIP РОЛЬ
TO TAKE OWNERSHIP ROUTE
TO TAKE OWNERSHIP СХЕМА
TO TAKE OWNERSHIP

Применимо: SQL Server 2012 (11.x) и более поздних версий.
РОЛЬ СЕРВЕРА
TO TAKE OWNERSHIP SERVICE
TO TAKE OWNERSHIP SYMMETRIC KEY
TO TAKE OWNERSHIP ТИП
TO TAKE OWNERSHIP XML SCHEMA COLLECTION
UMSK UNMASK

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
UP UPDATE DATABASE
UP UPDATE OBJECT
UP UPDATE СХЕМА
VW VIEW DEFINITION APPLICATION ROLE
VW VIEW DEFINITION ASSEMBLY
VW VIEW DEFINITION ASYMMETRIC KEY
VW VIEW DEFINITION

Применимо: SQL Server 2012 (11.x) и более поздних версий.
AVAILABILITY GROUP
VW VIEW DEFINITION СЕРТИФИКАТ
VW VIEW DEFINITION CONTRACT
VW VIEW DEFINITION DATABASE
VW VIEW DEFINITION

Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure.
DATABASE SCOPED CREDENTIAL
VW VIEW DEFINITION КОНЕЧНАЯ ТОЧКА
VW VIEW DEFINITION FULLTEXT CATALOG
VW VIEW DEFINITION FULLTEXT STOPLIST
VW VIEW DEFINITION ВХОД
VW VIEW DEFINITION MESSAGE TYPE
VW VIEW DEFINITION OBJECT
VW VIEW DEFINITION REMOTE SERVICE BINDING
VW VIEW DEFINITION РОЛЬ
VW VIEW DEFINITION ROUTE
VW VIEW DEFINITION СХЕМА
VW VIEW DEFINITION SEARCH PROPERTY LIST
VW VIEW DEFINITION

Применимо: SQL Server 2012 (11.x) и более поздних версий.
РОЛЬ СЕРВЕРА
VW VIEW DEFINITION SERVICE
VW VIEW DEFINITION SYMMETRIC KEY
VW VIEW DEFINITION ТИП
VW VIEW DEFINITION Пользователь
VW VIEW DEFINITION XML SCHEMA COLLECTION
VWAD VIEW ANY DEFINITION SERVER
VWCK VIEW ANY COLUMN ENCRYPTION KEY DEFINITION

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
VWCM VIEW ANY COLUMN MASTER KEY DEFINITION

Область применения: SQL Server 2016 (13.x) и более поздних версий.
DATABASE
VWCT VIEW CHANGE TRACKING OBJECT
VWCT VIEW CHANGE TRACKING СХЕМА
VWDB VIEW ANY DATABASE SERVER
VWDS ПРОСМОТР СОСТОЯНИЯ БАЗЫ ДАННЫХ DATABASE
VWSS VIEW SERVER STATE SERVER
XA EXTERNAL ACCESS ASSEMBLY SERVER
XU UNSAFE ASSEMBLY SERVER

Замечания

Функция с табличным значением sys.fn_builtin_permissions выдает копию стандартной иерархии разрешений. Такая иерархия включает в себя покрытие разрешений. Результирующий DEFAULT набор описывает направленный ациклический граф иерархии разрешений, из которого корень является (класс = SERVER, разрешение = CONTROL SERVER).

Функция sys.fn_builtin_permissions не принимает связанные параметры.

Функция sys.fn_builtin_permissions возвращает пустой набор, если вызвана с недопустимым именем класса.

На следующем рисунке показаны разрешения и их связи друг с другом. Некоторые из разрешений более высокого уровня (например, CONTROL SERVER) указаны несколько раз. Рисунок в этой статье слишком мал для чтения. Вы можете скачать полноразмерный ядро СУБД плакат разрешений в формате PDF.

Снимок экрана: PDF-файл разрешений ядро СУБД.

Разрешения

Требуется членство в роли public.

Примеры

А. Список всех встроенных разрешений

Используйте DEFAULT или пустую строку для возврата всех разрешений.

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

B. Вывод списка разрешений, которые можно задать на симметричном ключе

Укажите класс для возврата всех возможных разрешений для этого класса.

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

В. Перечисление классов, для которых есть разрешение SELECT

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

См. также