Разрешения (ядро СУБД)

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsСистема платформы аналитики (PDW)Конечная точка SQL аналитики в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в Microsoft Fabric

Каждый защищаемый объект SQL Server имеет связанные с ним разрешения, которые могут быть предоставлены субъекту безопасности. Разрешения в ядро СУБД управляются на уровне сервера, назначенном ролям входа и серверам, а также на уровне базы данных, назначенной пользователям базы данных и ролям базы данных. Модель для База данных SQL Azure имеет ту же систему для разрешений базы данных, но разрешения на уровне сервера недоступны. В этой статье содержится полный список разрешений. Типичные реализации разрешений см. в статье "Начало работы с разрешениями ядра СУБД".

Общее количество разрешений для SQL Server 2022 (16.x) — 292. База данных SQL Azure предоставляет 292 разрешения. Большинство разрешений применяются ко всем платформам, но некоторые не применяются. Например, большинство разрешений на уровне сервера не могут быть предоставлены в База данных SQL Azure, а для База данных SQL Azure имеет смысл только несколько разрешений. Новые разрешения постепенно вводятся по мере выхода новых версий. SQL Server 2019 (15.x) предоставляет 248 разрешений. SQL Server 2017 (14.x) предоставил 238 разрешений. SQL Server 2016 (13.x) предоставляет 230 разрешений. SQL Server 2014 (12.x) предоставил 219 разрешений. SQL Server 2012 (11.x) предоставляет 214 разрешений. SQL Server 2008 R2 (10.50.x) предоставлял 195 разрешений. В статье sys.fn_builtin_permissions указывается, какие разрешения являются новыми в последних версиях.

В базе данных SQL в Microsoft Fabric поддерживаются только пользователи и роли уровня базы данных. На уровне сервера имена входа, роли и учетная запись sa недоступны. В базе данных SQL в Microsoft Fabric идентификатор Microsoft Entra для пользователей базы данных является единственным поддерживаемым методом проверки подлинности. Дополнительные сведения см. в разделе "Авторизация в базе данных SQL" в Microsoft Fabric.

После того как вы определите, какие разрешения требуются, можно назначить разрешения уровня сервера учетным записям входа или ролям сервера, а разрешения уровня базы данных — пользователям или ролям базы данных с помощью инструкций GRANT, REVOKE и DENY. Рассмотрим пример.

GRANT SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;
REVOKE SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;

Советы по планированию системы разрешений см. в статье "Начало работы с разрешениями ядра СУБД".

Правила именования разрешений

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

  • CONTROL

    Предоставляет получателю права, аналогичные правам владельца. Получатель разрешения фактически имеет все определенные разрешения на защищаемый объект. Субъект безопасности, которому предоставлено разрешение CONTROL, также может предоставлять разрешения для защищаемого объекта. Так как модель безопасности SQL Server является иерархической, CONTROL в определенной области неявно включает CONTROL для всех защищаемых объектов в этой области. Например, разрешение CONTROL для базы данных подразумевает все разрешения на базу данных, все разрешения на все сборки в базе данных, все разрешения на все схемы в базе данных, а также все разрешения на объекты во всех схемах базы данных.

  • ALTER

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

  • ALTER ANY <Защищаемый объект сервера>, где Защищаемый объект сервера может быть любым защищаемым объектом сервера.

    Предоставляет возможность создавать, изменять или удалять отдельные экземпляры защищаемого объекта сервера. Например, ALTER ANY LOGIN обеспечивает возможность создания, изменения или удаления любого имени входа в экземпляре.

  • ALTER ANY <Защищаемый объект базы данных>, где защищаемый объект базы данных может быть любым защищаемым объектом на уровне базы данных.

    Предоставляет возможность СОЗДАВАТЬ, ИЗМЕНЯТЬ или УДАЛЯТЬ отдельные объекты защищаемого объекта базы данных. Например, ALTER ANY SCHEMA позволяет создавать, изменять или удалять любую схему в базе данных.

  • ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ

    Позволяет получателю взять на себя владение объектом безопасности, на который предоставлены права.

  • IMPERSONATE <Имя_для_входа>

    Позволяет пользователю, которому предоставлено разрешение, входить в систему от имени этой учетной записи.

  • IMPERSONATE <Пользователь>

    Позволяет получателю выдавать себя за пользователя.

  • CREATE <Защищаемый объект сервера>

    Предоставляет получателю разрешения возможность создавать защищаемую сущность сервера.

  • CREATE <Защищаемый объект базы данных>

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

  • CREATE <Защищаемый объект, содержащийся в схеме>

    Предоставляет возможность создавать защищаемый объект, содержащийся в схеме. Однако для создания защищаемой сущности в определённой схеме требуется разрешение ALTER для этой схемы.

  • VIEW ОПРЕДЕЛЕНИЕ

    Предоставляет получателю прав доступ к метаданным.

  • REFERENCES

    Разрешение REFERENCES для таблицы необходимо для создания ограничения FOREIGN KEY, которое ссылается на эту таблицу.

    Для объекта требуется разрешение REFERENCES, чтобы создать FUNCTION или VIEW с предложением WITH SCHEMABINDING, ссылающимся на этот объект.

Диаграмма разрешений SQL Server

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

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

Разрешения, применимые к определенным защищаемым компонентам

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

Permission Применимо к
ALTER Все классы объектов, кроме TYPE.
CONTROL Все классы объектов:

AGGREGATE,
APPLICATION ROLE,
ASSEMBLY,
ASYMMETRIC KEY,
AVAILABILITY GROUP,
CERTIFICATE,
CONTRACT,
CREDENTIALS,
DATABASE,
DATABASE SCOPED CREDENTIAL,
DEFAULT,
ENDPOINT,
FULLTEXT CATALOG,
FULLTEXT STOPLIST,
FUNCTION,
LOGIN,
MESSAGE TYPE,
PROCEDURE,
QUEUE,
REMOTE SERVICE BINDING,
ROLE,
ROUTE,
RULE,
SCHEMA,
SEARCH PROPERTY LIST,
SERVER,
SERVER ROLE,
SERVICE,
SYMMETRIC KEY,
SYNONYM,
TABLE,
TYPE,
USER,
VIEW, и
XML SCHEMA COLLECTION
DELETE Все классы объектов, кроме DATABASE SCOPED CONFIGURATION, SERVER и TYPE.
EXECUTE типы CLR, внешние скрипты, процедуры (Transact-SQL и CLR), скалярные и агрегатные функции (Transact-SQL и CLR), и синонимы
IMPERSONATE Имена входа и пользователи
INSERT Синонимы, таблицы и столбцы, представления и столбцы. Разрешение можно предоставить на уровне базы данных, схемы или объектов.
RECEIVE Очереди Service Broker
REFERENCES AGGREGATE,
ASSEMBLY,
ASYMMETRIC KEY,
CERTIFICATE,
CONTRACT,
CREDENTIAL(относится к SQL Server 2022 (16.x) и более поздним версиям);
DATABASE,
DATABASE SCOPED CREDENTIAL,
FULLTEXT CATALOG,
FULLTEXT STOPLIST,
FUNCTION,
MESSAGE TYPE,
PROCEDURE,
QUEUE,
RULE,
SCHEMA,
SEARCH PROPERTY LIST,
SEQUENCE ОБЪЕКТ,
SYMMETRIC KEY,
TABLE,
TYPE,
VIEW, и
XML SCHEMA COLLECTION
SELECT Синонимы, таблицы и столбцы, представления и столбцы. Разрешение можно предоставить на уровне базы данных, схемы или объектов.
ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ Все классы объектов, кроме DATABASE SCOPED CONFIGURATION, LOGINSERVER и USER.
UPDATE Синонимы, таблицы и столбцы, представления и столбцы. Разрешение можно предоставить на уровне базы данных, схемы или объектов.
VIEW ОТСЛЕЖИВАНИЕ ИЗМЕНЕНИЙ Схемы и таблицы
VIEW ОПРЕДЕЛЕНИЕ Все классы объектов, кроме DATABASE SCOPED CONFIGURATIONи SERVER.

Caution

Разрешения по умолчанию, предоставляемые системным объектам во время установки, тщательно оцениваются по возможным угрозам и не должны быть изменены в рамках защиты установки SQL Server. Любые изменения разрешений для системных объектов могут ограничить или нарушить функциональные возможности и потенциально оставить установку SQL Server в неподдерживаемом состоянии.

Разрешения SQL Server

В следующей таблице приведен полный список разрешений SQL Server. Разрешения в База данных SQL Azure доступны только для поддерживаемых базовых защищаемых объектов. Разрешения на уровне сервера не могут быть предоставлены в База данных SQL Azure, однако в некоторых случаях разрешения базы данных доступны вместо этого.

Базовый защищаемый объект Гранулярные разрешения на базовую защищаемую сущность Код типа разрешения Защищаемый объект, содержащий базовый защищаемый объект Разрешение для защищаемой сущности-контейнера, подразумевающее гранулярное разрешение для базовой защищаемой сущности
APPLICATION ROLE ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО APPLICATION ROLE
APPLICATION ROLE CONTROL CL DATABASE CONTROL
APPLICATION ROLE VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
ASSEMBLY ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО ASSEMBLY
ASSEMBLY CONTROL CL DATABASE CONTROL
ASSEMBLY REFERENCES RF DATABASE REFERENCES
ASSEMBLY ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
ASSEMBLY VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
ASYMMETRIC KEY ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО ASYMMETRIC KEY
ASYMMETRIC KEY CONTROL CL DATABASE CONTROL
ASYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
ASYMMETRIC KEY ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
ASYMMETRIC KEY VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
AVAILABILITY GROUP ALTER AL SERVER ИЗМЕНЕНИЕ ЛЮБОГО AVAILABILITY GROUP
AVAILABILITY GROUP CONTROL CL SERVER сервер управления
AVAILABILITY GROUP ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO SERVER сервер управления
AVAILABILITY GROUP VIEW ОПРЕДЕЛЕНИЕ VW SERVER VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ
CERTIFICATE ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО CERTIFICATE
CERTIFICATE CONTROL CL DATABASE CONTROL
CERTIFICATE REFERENCES RF DATABASE REFERENCES
CERTIFICATE ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
CERTIFICATE VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
CONTRACT ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО CONTRACT
CONTRACT CONTROL CL DATABASE CONTROL
CONTRACT REFERENCES RF DATABASE REFERENCES
CONTRACT ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
CONTRACT VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
CREDENTIAL CONTROL CL SERVER сервер управления
CREDENTIAL REFERENCES RF SERVER ИЗМЕНЕНИЕ ЛЮБОГО CREDENTIAL
DATABASE АДМИНИСТРИРОВАНИЕ DATABASE МАССОВЫХ ОПЕРАЦИЙ DABO SERVER сервер управления
DATABASE ALTER AL SERVER ИЗМЕНЕНИЕ ЛЮБОГО DATABASE
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО APPLICATION ROLE ALAR SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО ASSEMBLY ALAS SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО ASYMMETRIC KEY ALAK SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО CERTIFICATE ALCF SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО COLUMN ENCRYPTION KEY ALCK

Применяется к SQL Server (SQL Server 2016 (13.x) и более поздних версий), База данных Azure SQL.
SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО COLUMN MASTER KEY ALCM

Применяется к SQL Server (SQL Server 2016 (13.x) и более поздних версий), База данных Azure SQL.
SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО CONTRACT ALSC SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО DATABASE АУДИТА ALDA SERVER ИЗМЕНЕНИЕ ЛЮБОГО SERVER AUDIT
DATABASE Изменение любого DATABASE DDL TRIGGER ALTG SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО DATABASEEVENT NOTIFICATION ALED SERVER ИЗМЕНЕНИЕ ЛЮБОГО EVENT NOTIFICATION
DATABASE Изменение любых DATABASEEVENT SESSION AADS SERVER ИЗМЕНЕНИЕ ЛЮБОГО EVENT SESSION
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО DATABASEEVENT SESSION ДОБАВЛЕНИЯ СОБЫТИЙ LDAE SERVER ALTER ANY EVENT SESSION ADD EVENT
DATABASE ALTER ANY DATABASEEVENT SESSION ADD TARGET LDAT SERVER ИЗМЕНИТЬ ЛЮБОЙ EVENT SESSION ДОБАВИТЬ ЦЕЛЬ
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО DATABASEEVENT SESSION ОТКЛЮЧЕНИЕ DDES SERVER ИЗМЕНЯТЬ ЛЮБОЕ EVENT SESSION ОТКЛЮЧЕНИЕ
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО DATABASEEVENT SESSION УДАЛЕНИЯ СОБЫТИЙ LDDE SERVER ALTER ANY EVENT SESSION DROP EVENT
DATABASE ИЗМЕНЕНИЕ ЛЮБОЙ DATABASEEVENT SESSION ЦЕЛИ УДАЛЕНИЯ LDDT SERVER Изменение любой цели удаления EVENT SESSION
DATABASE ALTER ANY DATABASEEVENT SESSION ВКЛЮЧЕНИЕ EDES SERVER ВКЛЮЧИТЬ ИЗМЕНЕНИЕ ЛЮБОГО EVENT SESSION
DATABASE ALTER ЛЮБОЙ DATABASEEVENT SESSION ПАРАМЕТР LDSO SERVER Изменение любого параметра EVENT SESSION
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО DATABASE SCOPED CONFIGURATION ALDC

Применяется к SQL Server (SQL Server 2016 (13.x) и более поздних версий), База данных SQL Azure.
SERVER сервер управления
DATABASE ИЗМЕНИТЬ ЛЮБОЕ ПРОСТРАНСТВО ДАННЫХ ALDS SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО EXTERNAL DATA SOURCE AEDS SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО EXTERNAL FILE FORMAT AEFF SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОЙ ВНЕШНЕЙ ЗАДАЧИ AESJ SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО EXTERNAL LANGUAGE ALLA SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО EXTERNAL LIBRARY ALEL SERVER сервер управления
DATABASE ИЗМЕНИТЬ ЛЮБОЙ ВНЕШНИЙ ПОТОК AEST SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО FULLTEXT CATALOG ALFT SERVER сервер управления
DATABASE ИЗМЕНИТЬ ЛЮБУЮ МАСКУ AAMK

Применяется к SQL Server (SQL Server 2016 (13.x) по текущую версию), База данных SQL Azure.
SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО MESSAGE TYPE ALMT SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО REMOTE SERVICE BINDING ALSB SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО ROLE ALRL SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО ROUTE ALRT SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО SCHEMA ALSM SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО SECURITY POLICY ALSP

Применяется к: SQL Server (SQL Server 2016 (13.x) и более поздних версий), База данных Azure SQL.
SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО SENSITIVITY CLASSIFICATION AASC
Применяется к SQL Server (SQL Server 2019 (15.x) и более поздних версий), База данных Azure SQL.
SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО SERVICE ALSV SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО SYMMETRIC KEY ALSK SERVER сервер управления
DATABASE ИЗМЕНЕНИЕ ЛЮБОГО USER ALUS SERVER сервер управления
DATABASE ALTER LEDGER ALR SERVER CONTROL
DATABASE Изменить конфигурацию регистра ALC SERVER сервер управления
DATABASE AUTHENTICATE AUTH SERVER АУТЕНТИФИЦИРУЙТЕ СЕРВЕР
DATABASE BACKUP DATABASE BADB SERVER сервер управления
DATABASE BACKUP ЖУРНАЛ BALO SERVER сервер управления
DATABASE CHECKPOINT CP SERVER сервер управления
DATABASE CONNECT CO SERVER сервер управления
DATABASE Репликация Connect CORP SERVER сервер управления
DATABASE CONTROL CL SERVER сервер управления
DATABASE CREATE AGGREGATE CRAG SERVER сервер управления
DATABASE СОЗДАЙТЕ ЛЮБОЙ DATABASEEVENT SESSION CRDS SERVER СОЗДАЙТЕ ЛЮБОЙ EVENT SESSION
DATABASE CREATE ASSEMBLY CRAS SERVER сервер управления
DATABASE CREATE ASYMMETRIC KEY CRAK SERVER сервер управления
DATABASE CREATE CERTIFICATE CRCF SERVER сервер управления
DATABASE CREATE CONTRACT CRSC SERVER сервер управления
DATABASE CREATE DATABASE CRDB SERVER СОЗДАЙТЕ ЛЮБОЙ DATABASE
DATABASE CREATE DATABASE DDL EVENT NOTIFICATION CRED SERVER CREATE DDL EVENT NOTIFICATION
DATABASE CREATE DEFAULT CRDF SERVER сервер управления
DATABASE CREATE EXTERNAL LANGUAGE CRLA SERVER сервер управления
DATABASE CREATE EXTERNAL LIBRARY CREL SERVER сервер управления
DATABASE CREATE FULLTEXT CATALOG CRFT SERVER сервер управления
DATABASE CREATE FUNCTION CRFN SERVER сервер управления
DATABASE CREATE MESSAGE TYPE CRMT SERVER сервер управления
DATABASE CREATE PROCEDURE CRPR SERVER сервер управления
DATABASE CREATE QUEUE CRQU SERVER сервер управления
DATABASE CREATE REMOTE SERVICE BINDING CRSB SERVER сервер управления
DATABASE CREATE ROLE CRRL SERVER сервер управления
DATABASE CREATE ROUTE CRRT SERVER сервер управления
DATABASE CREATE RULE CRRU SERVER сервер управления
DATABASE CREATE SCHEMA CRSM SERVER сервер управления
DATABASE CREATE SERVICE CRSV SERVER сервер управления
DATABASE CREATE SYMMETRIC KEY CRSK SERVER сервер управления
DATABASE CREATE SYNONYM CRSN SERVER сервер управления
DATABASE CREATE TABLE CRTB SERVER сервер управления
DATABASE CREATE TYPE CRTY SERVER сервер управления
DATABASE CREATE USER CUSR SERVER сервер управления
DATABASE CREATE VIEW CRVW SERVER сервер управления
DATABASE CREATE XML SCHEMA COLLECTION CRXS SERVER сервер управления
DATABASE DELETE DL SERVER сервер управления
DATABASE СБРОСЬТЕ ЛЮБОЙ DATABASEEVENT SESSION DRDS SERVER Перетащите любой EVENT SESSION
DATABASE ВКЛЮЧЕНИЕ РЕЕСТРА EL SERVER CONTROL
DATABASE EXECUTE EX SERVER сервер управления
DATABASE ВЫПОЛНИТЬ ЛЮБЫЕ ВНЕШНИЕ ENDPOINT EAEE SERVER сервер управления
DATABASE ВЫПОЛНИТЬ ЛЮБОЙ ВНЕШНИЙ СКРИПТ EAES

Применимо к SQL Server (SQL Server 2016 (13.x) и более поздних версий).
SERVER сервер управления
DATABASE INSERT IN SERVER сервер управления
DATABASE РАЗОРВАТЬ DATABASE СОЕДИНЕНИЕ KIDC

Применяется только к База данных SQL Azure. Используйте ALTER ANY CONNECTION в SQL Server.
SERVER ИЗМЕНЕНИЕ ЛЮБОГО СОЕДИНЕНИЯ
DATABASE REFERENCES RF SERVER сервер управления
DATABASE SELECT SL SERVER сервер управления
DATABASE SHOWPLAN SPLN SERVER ALTER TRACE (изменение трассировки)
DATABASE УВЕДОМЛЕНИЯ О ЗАПРОСЕ НА ПОДПИСКУ SUQN SERVER сервер управления
DATABASE ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO SERVER сервер управления
DATABASE UNMASK UMSK

Применяется к SQL Server (SQL Server 2016 (13.x) до текущего), База данных SQL Azure.
SERVER сервер управления
DATABASE UPDATE UP SERVER сервер управления
DATABASE VIEW ЛЮБОЕ COLUMN ENCRYPTION KEY ОПРЕДЕЛЕНИЕ VWCK

Применяется к SQL Server (SQL Server 2016 (13.x) до текущего), База данных SQL Azure.
SERVER VIEW СОСТОЯНИЕ СЕРВЕРА
DATABASE VIEW ЛЮБОЕ COLUMN MASTER KEY ОПРЕДЕЛЕНИЕ VWCM

Применяется к SQL Server (SQL Server 2016 (13.x) до текущего), База данных SQL Azure.
SERVER VIEW СОСТОЯНИЕ СЕРВЕРА
DATABASE VIEW ЛЮБОЙ SENSITIVITY CLASSIFICATION VASC SERVER сервер управления
DATABASE VIEW КРИПТОГРАФИЧЕСКИ ЗАЩИЩЕННОЕ ОПРЕДЕЛЕНИЕ VCD SERVER VIEW ЛЮБОЕ КРИПТОГРАФИЧЕСКИ ЗАЩИЩЕННОЕ ОПРЕДЕЛЕНИЕ
DATABASE VIEW DATABASE СОСТОЯНИЕ ПРОИЗВОДИТЕЛЬНОСТИ VDP SERVER VIEW СОСТОЯНИЕ ПРОИЗВОДИТЕЛЬНОСТИ СЕРВЕРА
DATABASE VIEW DATABASE АУДИТ БЕЗОПАСНОСТИ VDSA SERVER сервер управления
DATABASE VIEW DATABASE СОСТОЯНИЕ БЕЗОПАСНОСТИ VDS SERVER VIEW СОСТОЯНИЕ БЕЗОПАСНОСТИ СЕРВЕРА
DATABASE VIEW DATABASE СОСТОЯНИЕ VWDS SERVER VIEW СОСТОЯНИЕ СЕРВЕРА
DATABASE VIEW ОПРЕДЕЛЕНИЕ VW SERVER VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ
DATABASE VIEW СОДЕРЖИМОЕ РЕЕСТРА VLC SERVER CONTROL
DATABASE VIEW ОПРЕДЕЛЕНИЕ БЕЗОПАСНОСТИ VWS SERVER VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ БЕЗОПАСНОСТИ
DATABASE VIEW ОПРЕДЕЛЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ VWP SERVER VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ
DATABASE SCOPED CREDENTIAL ALTER AL DATABASE CONTROL
DATABASE SCOPED CREDENTIAL CONTROL CL DATABASE CONTROL
DATABASE SCOPED CREDENTIAL REFERENCES RF DATABASE REFERENCES
DATABASE SCOPED CREDENTIAL ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
DATABASE SCOPED CREDENTIAL VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
ENDPOINT ALTER AL SERVER ИЗМЕНЕНИЕ ЛЮБОГО ENDPOINT
ENDPOINT CONNECT CO SERVER сервер управления
ENDPOINT CONTROL CL SERVER сервер управления
ENDPOINT ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO SERVER сервер управления
ENDPOINT VIEW ОПРЕДЕЛЕНИЕ VW SERVER VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ
FULLTEXT CATALOG ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО FULLTEXT CATALOG
FULLTEXT CATALOG CONTROL CL DATABASE CONTROL
FULLTEXT CATALOG REFERENCES RF DATABASE REFERENCES
FULLTEXT CATALOG ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
FULLTEXT CATALOG VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
FULLTEXT STOPLIST ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО FULLTEXT CATALOG
FULLTEXT STOPLIST CONTROL CL DATABASE CONTROL
FULLTEXT STOPLIST REFERENCES RF DATABASE REFERENCES
FULLTEXT STOPLIST ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
FULLTEXT STOPLIST VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
LOGIN ALTER AL SERVER ИЗМЕНЕНИЕ ЛЮБОГО LOGIN
LOGIN CONTROL CL SERVER сервер управления
LOGIN IMPERSONATE IM SERVER сервер управления
LOGIN VIEW ОПРЕДЕЛЕНИЕ VW SERVER VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ
MESSAGE TYPE ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО MESSAGE TYPE
MESSAGE TYPE CONTROL CL DATABASE CONTROL
MESSAGE TYPE REFERENCES RF DATABASE REFERENCES
MESSAGE TYPE ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
MESSAGE TYPE VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
OBJECT ALTER AL SCHEMA ALTER
OBJECT CONTROL CL SCHEMA CONTROL
OBJECT DELETE DL SCHEMA DELETE
OBJECT EXECUTE EX SCHEMA EXECUTE
OBJECT INSERT IN SCHEMA INSERT
OBJECT RECEIVE RC SCHEMA CONTROL
OBJECT REFERENCES RF SCHEMA REFERENCES
OBJECT SELECT SL SCHEMA SELECT
OBJECT ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO SCHEMA CONTROL
OBJECT UNMASK UMSK SCHEMA UNMASK
OBJECT UPDATE UP SCHEMA UPDATE
OBJECT VIEW ОТСЛЕЖИВАНИЕ ИЗМЕНЕНИЙ VWCT SCHEMA VIEW ОТСЛЕЖИВАНИЕ ИЗМЕНЕНИЙ
OBJECT VIEW ОПРЕДЕЛЕНИЕ VW SCHEMA VIEW ОПРЕДЕЛЕНИЕ
REMOTE SERVICE BINDING ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО REMOTE SERVICE BINDING
REMOTE SERVICE BINDING CONTROL CL DATABASE CONTROL
REMOTE SERVICE BINDING ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
REMOTE SERVICE BINDING VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
ROLE ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО ROLE
ROLE CONTROL CL DATABASE CONTROL
ROLE ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
ROLE VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
ROUTE ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО ROUTE
ROUTE CONTROL CL DATABASE CONTROL
ROUTE ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
ROUTE VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
SCHEMA ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО SCHEMA
SCHEMA CONTROL CL DATABASE CONTROL
SCHEMA CREATE SEQUENCE CRSO DATABASE CONTROL
SCHEMA DELETE DL DATABASE DELETE
SCHEMA EXECUTE EX DATABASE EXECUTE
SCHEMA INSERT IN DATABASE INSERT
SCHEMA REFERENCES RF DATABASE REFERENCES
SCHEMA SELECT SL DATABASE SELECT
SCHEMA ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
SCHEMA UNMASK UMSK DATABASE UNMASK
SCHEMA UPDATE UP DATABASE UPDATE
SCHEMA VIEW ОТСЛЕЖИВАНИЕ ИЗМЕНЕНИЙ VWCT DATABASE VIEW Отслеживание изменений
SCHEMA VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
SEARCH PROPERTY LIST ALTER AL SERVER ИЗМЕНЕНИЕ ЛЮБОГО FULLTEXT CATALOG
SEARCH PROPERTY LIST CONTROL CL SERVER CONTROL
SEARCH PROPERTY LIST REFERENCES RF SERVER REFERENCES
SEARCH PROPERTY LIST ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO SERVER CONTROL
SEARCH PROPERTY LIST VIEW ОПРЕДЕЛЕНИЕ VW SERVER VIEW ОПРЕДЕЛЕНИЕ
SERVER АДМИНИСТРИРОВАНИЕ МАССОВЫХ ОПЕРАЦИЙ ADBO Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО AVAILABILITY GROUP ALAG Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО СОЕДИНЕНИЯ ALCO Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО CREDENTIAL ALCD Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО DATABASE ALDB Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО ENDPOINT ALHE Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО EVENT NOTIFICATION ALES Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО EVENT SESSION AAES Неприменимо Неприменимо
SERVER ALTER ANY EVENT SESSION ADD EVENT LSAE Неприменимо Неприменимо
SERVER ИЗМЕНИТЬ ЛЮБОЙ EVENT SESSION ДОБАВИТЬ ЦЕЛЬ LSAT Неприменимо Неприменимо
SERVER ИЗМЕНЯТЬ ЛЮБОЕ EVENT SESSION ОТКЛЮЧЕНИЕ DES Неприменимо Неприменимо
SERVER ALTER ANY EVENT SESSION DROP EVENT LSDE Неприменимо Неприменимо
SERVER Изменение любой цели удаления EVENT SESSION LSDT Неприменимо Неприменимо
SERVER ВКЛЮЧИТЬ ИЗМЕНЕНИЕ ЛЮБОГО EVENT SESSION EES Неприменимо Неприменимо
SERVER Изменение любого параметра EVENT SESSION LESO Неприменимо Неприменимо
SERVER ИЗМЕНИТЬ ЛЮБОЙ ПОДКЛЮЧЕННЫЙ СЕРВЕР ALLS Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО LOGIN ALLG Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО SERVER AUDIT ALAA Неприменимо Неприменимо
SERVER ИЗМЕНЕНИЕ ЛЮБОГО SERVER ROLE ALSR Неприменимо Неприменимо
SERVER ИЗМЕНИТЬ РЕСУРСЫ ALRS Неприменимо Неприменимо
SERVER Изменить состояние сервера (ALTER SERVER STATE) ALSS Неприменимо Неприменимо
SERVER ИЗМЕНИТЬ НАСТРОЙКИ ALST Неприменимо Неприменимо
SERVER ALTER TRACE (изменение трассировки) ALTR Неприменимо Неприменимо
SERVER АУТЕНТИФИЦИРУЙТЕ СЕРВЕР AUTH Неприменимо Неприменимо
SERVER ПОДКЛЮЧИТЕ ЛЮБОЙ DATABASE CADB Неприменимо Неприменимо
SERVER CONNECT SQL COSQ Неприменимо Неприменимо
SERVER сервер управления CL Неприменимо Неприменимо
SERVER СОЗДАЙТЕ ЛЮБОЙ DATABASE CRDB Неприменимо Неприменимо
SERVER CREATE AVAILABILITY GROUP CRAC Неприменимо Неприменимо
SERVER CREATE DDL EVENT NOTIFICATION CRDE Неприменимо Неприменимо
SERVER CREATE ENDPOINT CRHE Неприменимо Неприменимо
SERVER CREATE SERVER ROLE CRSR Неприменимо Неприменимо
SERVER СОЗДАТЬ ТРАССИРОВКУ EVENT NOTIFICATION CRTE Неприменимо Неприменимо
SERVER ВНЕШНИЙ ДОСТУП ASSEMBLY XA Неприменимо Неприменимо
SERVER ОЛИЦЕТВОРЕНИЯ ЛЮБОГО LOGIN IAL Неприменимо Неприменимо
SERVER ВЫБЕРИТЕ ВСЕ USER ЗАЩИЩАЕМЫЕ ОБЪЕКТЫ SUS Неприменимо Неприменимо
SERVER SHUTDOWN SHDN Неприменимо Неприменимо
SERVER НЕБЕЗОПАСНО ASSEMBLY XU Неприменимо Неприменимо
SERVER VIEW ЛЮБОЙ DATABASE VWDB Неприменимо Неприменимо
SERVER VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ VWAD Неприменимо Неприменимо
SERVER VIEW СОСТОЯНИЕ СЕРВЕРА VWSS Неприменимо Неприменимо
SERVER ROLE ALTER AL SERVER ИЗМЕНЕНИЕ ЛЮБОГО SERVER ROLE
SERVER ROLE CONTROL CL SERVER сервер управления
SERVER ROLE ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO SERVER сервер управления
SERVER ROLE VIEW ОПРЕДЕЛЕНИЕ VW SERVER VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ
SERVICE ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО SERVICE
SERVICE CONTROL CL DATABASE CONTROL
SERVICE SEND SN DATABASE CONTROL
SERVICE ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
SERVICE VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
SYMMETRIC KEY ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО SYMMETRIC KEY
SYMMETRIC KEY CONTROL CL DATABASE CONTROL
SYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
SYMMETRIC KEY ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO DATABASE CONTROL
SYMMETRIC KEY VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
TYPE CONTROL CL SCHEMA CONTROL
TYPE EXECUTE EX SCHEMA EXECUTE
TYPE REFERENCES RF SCHEMA REFERENCES
TYPE ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO SCHEMA CONTROL
TYPE VIEW ОПРЕДЕЛЕНИЕ VW SCHEMA VIEW ОПРЕДЕЛЕНИЕ
USER ALTER AL DATABASE ИЗМЕНЕНИЕ ЛЮБОГО USER
USER CONTROL CL DATABASE CONTROL
USER IMPERSONATE IM DATABASE CONTROL
USER VIEW ОПРЕДЕЛЕНИЕ VW DATABASE VIEW ОПРЕДЕЛЕНИЕ
XML SCHEMA COLLECTION ALTER AL SCHEMA ALTER
XML SCHEMA COLLECTION CONTROL CL SCHEMA CONTROL
XML SCHEMA COLLECTION EXECUTE EX SCHEMA EXECUTE
XML SCHEMA COLLECTION REFERENCES RF SCHEMA REFERENCES
XML SCHEMA COLLECTION ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ TO SCHEMA CONTROL
XML SCHEMA COLLECTION VIEW ОПРЕДЕЛЕНИЕ VW SCHEMA VIEW ОПРЕДЕЛЕНИЕ

Новые детализированные разрешения, добавленные в SQL Server 2022

В SQL Server 2022 добавляются следующие разрешения:

  • Добавлены 10 новых разрешений, чтобы разрешить доступ к системным метаданным.

  • Для расширенных событий добавлено 18 новых разрешений.

  • Добавлены 9 новых разрешений в отношении объектов, связанных с безопасностью.

  • Для Ledger добавлено 4 разрешения.

  • 3 дополнительных разрешения для базы данных.

Дополнительные сведения см. в статье "Новые детализированные разрешения для SQL Server 2022 и Azure SQL для улучшения соответствия с помощью PoLP".

Доступ к разрешениям системных метаданных

Уровень сервера:

  • VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ БЕЗОПАСНОСТИ
  • VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ
  • VIEW СОСТОЯНИЕ БЕЗОПАСНОСТИ СЕРВЕРА
  • VIEW СОСТОЯНИЕ ПРОИЗВОДИТЕЛЬНОСТИ СЕРВЕРА
  • VIEW ЛЮБОЕ КРИПТОГРАФИЧЕСКИ ЗАЩИЩЕННОЕ ОПРЕДЕЛЕНИЕ

Уровень базы данных:

  • VIEW DATABASE СОСТОЯНИЕ БЕЗОПАСНОСТИ
  • VIEW DATABASE СОСТОЯНИЕ ПРОИЗВОДИТЕЛЬНОСТИ
  • VIEW ОПРЕДЕЛЕНИЕ БЕЗОПАСНОСТИ
  • VIEW ОПРЕДЕЛЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ
  • VIEW КРИПТОГРАФИЧЕСКИ ЗАЩИЩЕННОЕ ОПРЕДЕЛЕНИЕ

Разрешения расширенных событий

Уровень сервера:

  • СОЗДАЙТЕ ЛЮБОЙ EVENT SESSION
  • Перетащите любой EVENT SESSION
  • Изменение любого параметра EVENT SESSION
  • ALTER ANY EVENT SESSION ADD EVENT
  • ALTER ANY EVENT SESSION DROP EVENT
  • ВКЛЮЧИТЬ ИЗМЕНЕНИЕ ЛЮБОГО EVENT SESSION
  • ИЗМЕНЯТЬ ЛЮБОЕ EVENT SESSION ОТКЛЮЧЕНИЕ
  • ИЗМЕНИТЬ ЛЮБОЙ EVENT SESSION ДОБАВИТЬ ЦЕЛЬ
  • Изменение любой цели удаления EVENT SESSION

Все эти разрешения находятся под одинаковым родительским разрешением: ALTER ANY EVENT SESSION

Уровень базы данных:

  • СОЗДАЙТЕ ЛЮБОЙ DATABASEEVENT SESSION
  • СБРОСЬТЕ ЛЮБОЙ DATABASEEVENT SESSION
  • ALTER ЛЮБОЙ DATABASEEVENT SESSION ПАРАМЕТР
  • ИЗМЕНЕНИЕ ЛЮБОГО DATABASEEVENT SESSION ДОБАВЛЕНИЯ СОБЫТИЙ
  • ИЗМЕНЕНИЕ ЛЮБОГО DATABASEEVENT SESSION УДАЛЕНИЯ СОБЫТИЙ
  • ALTER ANY DATABASEEVENT SESSION ВКЛЮЧЕНИЕ
  • ИЗМЕНЕНИЕ ЛЮБОГО DATABASEEVENT SESSION ОТКЛЮЧЕНИЕ
  • ALTER ANY DATABASEEVENT SESSION ADD TARGET
  • ИЗМЕНЕНИЕ ЛЮБОЙ DATABASEEVENT SESSION ЦЕЛИ УДАЛЕНИЯ

Все эти разрешения находятся под одинаковым родительским разрешением: ALTER ANY DATABASEEVENT SESSION

  • УПРАВЛЕНИЕ (CREDENTIAL)
  • CREATE LOGIN
  • CREATE USER
  • ССЫЛКИ (CREDENTIAL)
  • РАЗМАСКИРОВАТЬ (ОБЪЕКТ)
  • UNMASK (SCHEMA)
  • VIEW ЛЮБОЙ ЖУРНАЛ ОШИБОК
  • VIEW АУДИТ БЕЗОПАСНОСТИ СЕРВЕРА
  • VIEW DATABASE АУДИТ БЕЗОПАСНОСТИ

Разрешения бухгалтерской книги

  • ALTER LEDGER
  • Изменить конфигурацию регистра
  • ВКЛЮЧЕНИЕ РЕЕСТРА
  • VIEW СОДЕРЖИМОЕ РЕЕСТРА

Другие разрешения базы данных

  • ИЗМЕНЕНИЕ ЛЮБОЙ ВНЕШНЕЙ ЗАДАЧИ
  • ИЗМЕНИТЬ ЛЮБОЙ ВНЕШНИЙ ПОТОК
  • ВЫПОЛНИТЬ ЛЮБЫЕ ВНЕШНИЕ ENDPOINT

Сводка алгоритма проверки разрешений

Проверка разрешений может оказаться сложной задачей. Алгоритм проверки разрешений учитывает перекрывающееся членство в группах и цепочки владения, явные и неявные разрешения. На его работу могут влиять разрешения на защищаемые классы, содержащие защищаемые сущности. Общая процедура алгоритма состоит в сборе всех применимых разрешений. Если блокировка DENY не найдена, алгоритм ищет GRANT, который обеспечивает достаточный доступ. Алгоритм содержит три необходимых элемента: контекст безопасности, область разрешенияи требуемое разрешение.

Note

Вы не можете предоставлять, запрещать или отзывать разрешения у sa, dbo, владельца сущности, information_schema, sys или себя.

  • Контекст безопасности

    Это группа участников, разрешения которых используются в проверке доступа. Это разрешения, связанные с текущим именем входа или пользователем, если только контекст безопасности не был изменен на другое имя входа или пользователя с помощью инструкции EXECUTE AS . В контекст безопасности входят следующие участники.

    • Логин

    • Пользователь

    • Членство в ролях

    • Членство в группах Windows.

    • Любое имя входа или учетная запись пользователя для сертификата, используемого для подписания модуля (если применяются подписи модулей), который выполняется пользователем в данный момент, и членство этого участника в соответствующих ролях.

  • Пространство разрешений

    Это защищаемая сущность и все защищаемые классы, содержащие защищаемый объект. Например, таблица (защищаемая сущность) содержится в защищаемом классе схемы и в защищаемом классе базы данных. На доступ могут влиять разрешения на уровне таблицы, схемы, базы данных и сервера. Дополнительные сведения см. в разделе "Иерархия разрешений" (ядро СУБД).

  • Обязательное разрешение

    Тип требуемого разрешения. Например, INSERT, UPDATE, DELETE, SELECT, EXECUTE, ALTER, CONTROL и т. д.

    Для доступа может требоваться несколько разрешений, как в следующих примерах.

    • Хранимая процедура может требовать как разрешения EXECUTE на выполнение хранимой процедуры, так и разрешения INSERT для нескольких таблиц, к которым обращается хранимая процедура.

    • Для динамического представления управления могут требоваться как разрешение VIEW SERVER STATE, так и разрешение SELECT для этого представления.

Общие шаги алгоритма

Когда алгоритм определяет, следует ли предоставлять доступ к защищаемому объекту, конкретные используемые шаги могут различаться в зависимости от того, какие участники и защищаемые объекты вовлечены в процесс. Однако в любом случае алгоритм выполняет следующие общие шаги.

  1. Пропустить проверку разрешений, если учетная запись для входа входит в фиксированную серверную роль sysadmin или если пользователь — dbo в текущей базе данных.

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

  3. Объединить идентификаторы уровня сервера, уровня базы данных и подписанных модулей, связанные с вызывающей стороной, чтобы создать контекст безопасности.

  4. Для этого контекста безопасности соберите все разрешения, которые предоставлены или запрещены для пространства разрешений. Разрешение может быть явно указано как GRANT, GRANT С GRANT или DENY; либо разрешения могут быть подразумеваемыми или охватывающими: GRANT или DENY. Например, разрешение CONTROL на схему подразумевает разрешение CONTROL на таблицу. Право CONTROL на таблицу подразумевает право SELECT. Таким образом, если на схему предоставлено разрешение CONTROL, то на таблицу предоставляется разрешение SELECT. Если для таблицы было запрещено разрешение CONTROL, то для таблицы запрещается и разрешение SELECT.

    Note

    Разрешение GRANT на уровне столбца переопределяет DENY на уровне объекта. Дополнительные сведения см. в разделе DENY "Разрешения объектов".

  5. Определить требуемое разрешение.

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

  7. Считайте проверку разрешений пройденной, если требуемое разрешение не было запрещено, а требуемое разрешение содержит разрешение GRANT или разрешение GRANT с разрешением GRANT напрямую или неявно для любого из субъектов в контексте безопасности для любого объекта в пространстве разрешений.

Особые замечания относительно разрешений на уровне столбца

Разрешения на уровне столбцов предоставляются с использованием синтаксиса <table_name>(<column _name>). Рассмотрим пример.

GRANT SELECT ON OBJECT::Customer(CustomerName) TO UserJoe;

DENY, заданный для таблицы, переопределяется GRANT, заданным для столбца. Однако последующее действие DENY в таблице приведёт к удалению столбца GRANT.

Examples

В примерах этого раздела показано, как получить сведения о разрешениях.

A. Возвращает полный список предоставленных разрешений

Следующая инструкция возвращает все разрешения компонента ядро СУБД с помощью функции fn_builtin_permissions. Для получения дополнительной информации см. sys.fn_builtin_permissions.

SELECT * FROM fn_builtin_permissions(default);
GO

B. Возврат разрешений для определенного класса объектов

В следующем примере функция fn_builtin_permissions используется для просмотра всех разрешений, доступных для категории защищаемых объектов. Этот пример возвращает разрешения для сборок.

SELECT * FROM fn_builtin_permissions('assembly');
GO

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

В следующем примере функция fn_my_permissions возвращает список действующих разрешений вызывающего участника в отношении указанного защищаемого объекта. В примере возвращаются разрешения на объект с именем Orders55. Дополнительные сведения см. в sys.fn_my_permissions.

SELECT * FROM fn_my_permissions('Orders55', 'object');
GO

D. Возврат разрешений, применимых к указанному объекту

В следующем примере возвращаются применимые разрешения на объект с именем Yttrium. Встроенная функция OBJECT_ID используется для получения идентификатора объекта Yttrium.

SELECT * FROM sys.database_permissions
    WHERE major_id = OBJECT_ID('Yttrium');
GO