Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Предоставляет разрешения на базу данных в SQL Server.
Соглашения о синтаксисе Transact-SQL
Syntax
GRANT <permission> [ ,...n ]
TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission>::=
permission | ALL [ PRIVILEGES ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Arguments
permission — указывает предоставляемое разрешение для базы данных. Список разрешений см. в подразделе "Примечания" далее в этом разделе.
ALL — этот параметр предоставляет не все возможные разрешения. Предоставление ALL эквивалентно предоставлению следующих разрешений: BACKUP DATABASE, BACKUP LOG, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE RULE, CREATE TABLE и CREATE VIEW.
PRIVILEGES — включено для обеспечения совместимости с требованиями ANSI-92. Не изменяет работу ALL.
WITH GRANT OPTION — указывает, что субъекту будет дана возможность предоставлять заданное разрешение другим субъектам.
AS <database_principal> — указывает участника, от которого наследует право на предоставление разрешения тот участник, который выполняет данный запрос.
Database_user — указывает пользователя базы данных.
Database_role — указывает роль базы данных.
Application_role применимо к SQL Server 2008 (10.0.x) и более поздним версиям, База данных SQL
Указывает роль приложения.
Database_user_mapped_to_Windows_User применимо к SQL Server 2008 (10.0.x) и более поздним версиям.
Указывает пользователя базы данных, сопоставленного с пользователем Windows.
Database_user_mapped_to_Windows_Group применимо к SQL Server 2008 (10.0.x) и более поздним версиям
Указывает пользователя базы данных, сопоставленного с группой Windows.
Database_user_mapped_to_certificate применимо к SQL Server 2008 (10.0.x) и более поздним версиям.
Указывает пользователя базы данных, сопоставленного с сертификатом.
Database_user_mapped_to_asymmetric_key применимо к SQL Server 2008 (10.0.x) и более поздним версиям.
Указывает пользователя базы данных, сопоставленного с асимметричным ключом.
Database_user_with_no_login — указывает пользователя базы данных, не сопоставленного с субъектом серверного уровня.
Remarks
Important
Сочетание разрешений ALTER и REFERENCE в некоторых случаях может позволить просматривать данные или выполнять несанкционированные функции. Пример. Пользователь с разрешением ALTER на таблицу и разрешением REFERENCE на функцию может создавать вычисляемый столбец на основе функции и в результате выполнять ее. В этом случае пользователю также требуется разрешение SELECT на вычисляемый столбец.
База данных — это защищаемый объект, хранящийся на сервере, который является родителем базы данных в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно предоставлять в базе данных, перечислены в следующей таблице вместе с общими разрешениями, неявно содержащими их.
| Разрешение базы данных | Содержится в разрешении базы данных | Подразумевается в разрешении сервера |
|---|---|---|
| УПРАВЛЕНИЕ МАССОВЫМИ ОПЕРАЦИЯМИ С БАЗОЙ ДАННЫХ Область применения: База данных SQL. |
CONTROL | сервер управления |
| ALTER | CONTROL | ALTER ANY DATABASE (ИЗМЕНЕНИЕ ЛЮБОЙ БАЗЫ ДАННЫХ). |
| ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ ПРИЛОЖЕНИЯ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБУЮ СБОРКУ | ALTER | сервер управления |
| Изменить любой асимметричный ключ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЙ СЕРТИФИКАТ | ALTER | сервер управления |
| Изменить любой ключ шифрования столбца | ALTER | сервер управления |
| ИЗМЕНИТЬ ОПРЕДЕЛЕНИЕ ЛЮБОГО ГЛАВНОГО КЛЮЧА СТОЛБЦА | ALTER | сервер управления |
| ИЗМЕНЯТЬ ЛЮБОЙ КОНТРАКТ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБУЮ ПРОВЕРКУ БАЗЫ ДАННЫХ | ALTER | ИЗМЕНЕНИЕ ЛЮБОГО АУДИТА СЕРВЕРА |
| ИЗМЕНИТЬ ЛЮБОЙ ТРИГГЕР DDL БАЗЫ ДАННЫХ | ALTER | сервер управления |
| Изменение любых уведомлений о событиях базы данных (ALTER ANY DATABASE EVENT NOTIFICATION) | ALTER | ИЗМЕНЕНИЕ ЛЮБОГО УВЕДОМЛЕНИЯ О СОБЫТИИ |
| ИЗМЕНИТЬ ЛЮБОЙ СЕССИЮ СОБЫТИЯ БАЗЫ ДАННЫХ Область применения: База данных SQL. |
ALTER | ИЗМЕНИТЬ ЛЮБУЮ СЕССИЮ СОБЫТИЯ |
| ИЗМЕНИТЬ ЛЮБУЮ КОНФИГУРАЦИЮ В ОБЛАСТИ БАЗЫ ДАННЫХ Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL. |
CONTROL | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЕ ПРОСТРАНСТВО ДАННЫХ | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО ВНЕШНЕГО ИСТОЧНИКА ДАННЫХ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЙ ВНЕШНИЙ ФОРМАТ ФАЙЛА | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБУЮ ВНЕШНЮЮ БИБЛИОТЕКУ Область применения: SQL Server 2017 (14.x). |
CONTROL | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЙ ПОЛНОТЕКСТОВЫЙ КАТАЛОГ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБУЮ МАСКУ | CONTROL | сервер управления |
| ИЗМЕНЯТЬ ЛЮБОЙ ТИП СООБЩЕНИЯ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБУЮ УДАЛЕННУЮ СВЯЗЬ СЕРВИСА | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЙ МАРШРУТ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБУЮ СХЕМУ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБУЮ ПОЛИТИКУ БЕЗОПАСНОСТИ Область применения: База данных SQL Azure. |
CONTROL | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОЙ КЛАССИФИКАЦИИ КОНФИДЕНЦИАЛЬНОСТИ Область применения: SQL Server (SQL Server 2019 и более поздних версий) и База данных SQL Azure. |
CONTROL | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОЙ СЛУЖБЫ | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЙ СИММЕТРИЧНЫЙ КЛЮЧ | ALTER | сервер управления |
| ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ | ALTER | сервер управления |
| AUTHENTICATE | CONTROL | ПРОВЕРКА ПОДЛИННОСТИ СЕРВЕРА |
| РЕЗЕРВНОЕ КОПИРОВАНИЕ БАЗЫ ДАННЫХ | CONTROL | сервер управления |
| ЖУРНАЛ РЕЗЕРВНОГО КОПИРОВАНИЯ | CONTROL | сервер управления |
| CHECKPOINT | CONTROL | сервер управления |
| CONNECT | РЕПЛИКАЦИЯ CONNECT | сервер управления |
| РЕПЛИКАЦИЯ CONNECT | CONTROL | сервер управления |
| CONTROL | CONTROL | сервер управления |
| СОЗДАТЬ АГГРЕГАТ | ALTER | сервер управления |
| СОЗДАНИЕ ЛЮБОЙ ВНЕШНЕЙ БИБЛИОТЕКИ Область применения: SQL Server 2017 (14.x). |
CONTROL | сервер управления |
| СОЗДАНИЕ СБОРКИ | ИЗМЕНИТЬ ЛЮБУЮ СБОРКУ | сервер управления |
| СОЗДАНИЕ АСИММЕТРИЧНОГО КЛЮЧА | Изменить любой асимметричный ключ | сервер управления |
| СОЗДАТЬ СЕРТИФИКАТ | ИЗМЕНИТЬ ЛЮБОЙ СЕРТИФИКАТ | сервер управления |
| Создать договор | ИЗМЕНЯТЬ ЛЮБОЙ КОНТРАКТ | сервер управления |
| СОЗДАТЬ БАЗУ ДАННЫХ | CONTROL | CREATE ANY DATABASE (СОЗДАНИЕ ЛЮБОЙ БАЗЫ ДАННЫХ); |
| СОЗДАНИЕ УВЕДОМЛЕНИЯ О СОБЫТИЯХ БАЗЫ ДАННЫХ DDL | Изменение любых уведомлений о событиях базы данных (ALTER ANY DATABASE EVENT NOTIFICATION) | СОЗДАНИЕ УВЕДОМЛЕНИЯ О СОБЫТИИ DDL |
| СОЗДАТЬ ПО УМОЛЧАНИЮ | ALTER | сервер управления |
| СОЗДАНИЕ КАТАЛОГА FULLTEXT | ИЗМЕНИТЬ ЛЮБОЙ ПОЛНОТЕКСТОВЫЙ КАТАЛОГ | сервер управления |
| СОЗДАТЬ ФУНКЦИЮ | ALTER | сервер управления |
| СОЗДАТЬ ТИП СООБЩЕНИЯ | ИЗМЕНЯТЬ ЛЮБОЙ ТИП СООБЩЕНИЯ | сервер управления |
| СОЗДАТЬ ПРОЦЕДУРУ | ALTER | сервер управления |
| СОЗДАНИЕ ОЧЕРЕДИ | ALTER | сервер управления |
| СОЗДАНИЕ ПРИВЯЗКИ К УДАЛЕННОЙ СЛУЖБЕ | ИЗМЕНИТЬ ЛЮБУЮ УДАЛЕННУЮ СВЯЗЬ СЕРВИСА | сервер управления |
| СОЗДАТЬ РОЛЬ | ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ | сервер управления |
| СОЗДАТЬ МАРШРУТ | ИЗМЕНИТЬ ЛЮБОЙ МАРШРУТ | сервер управления |
| СОЗДАНИЕ ПРАВИЛА | ALTER | сервер управления |
| СОЗДАТЬ СХЕМУ | ИЗМЕНИТЬ ЛЮБУЮ СХЕМУ | сервер управления |
| Создать сервис | ИЗМЕНЕНИЕ ЛЮБОЙ СЛУЖБЫ | сервер управления |
| СОЗДАНИЕ СИММЕТРИЧНОГО КЛЮЧА | ИЗМЕНИТЬ ЛЮБОЙ СИММЕТРИЧНЫЙ КЛЮЧ | сервер управления |
| СОЗДАТЬ СИНОНИМ | ALTER | сервер управления |
| CREATE TABLE | ALTER | сервер управления |
| СОЗДАТЬ ТИП | ALTER | сервер управления |
| СОЗДАТЬ ПРЕДСТАВЛЕНИЕ | ALTER | сервер управления |
| СОЗДАТЬ КОЛЛЕКЦИЮ XML-СХЕМ | ALTER | сервер управления |
| DELETE | CONTROL | сервер управления |
| EXECUTE | CONTROL | сервер управления |
| ВЫПОЛНЕНИЕ ЛЮБОЙ ВНЕШНЕЙ КОНЕЧНОЙ ТОЧКИ Область применения: База данных SQL Azure. |
CONTROL | сервер управления |
| ВЫПОЛНЕНИЕ ЛЮБОГО ВНЕШНЕГО СКРИПТА Область применения: SQL Server 2016 (13.x). |
CONTROL | сервер управления |
| ВЫПОЛНЕНИЕ ВНЕШНЕГО СКРИПТА Область применения: SQL Server 2019 (15.x) |
ВЫПОЛНИТЬ ЛЮБОЙ ВНЕШНИЙ СКРИПТ | сервер управления |
| INSERT | CONTROL | сервер управления |
| Завершить подключение к базе данных Область применения: База данных SQL Azure. |
CONTROL | ИЗМЕНЕНИЕ ЛЮБОГО СОЕДИНЕНИЯ |
| REFERENCES | CONTROL | сервер управления |
| SELECT | CONTROL | сервер управления |
| SHOWPLAN | CONTROL | ALTER TRACE |
| УВЕДОМЛЕНИЯ О ЗАПРОСЕ НА ПОДПИСКУ | CONTROL | сервер управления |
| ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ | CONTROL | сервер управления |
| UNMASK | CONTROL | сервер управления |
| UPDATE | CONTROL | сервер управления |
| ПРОСМОТР ОПРЕДЕЛЕНИЯ КЛЮЧА ШИФРОВАНИЯ СТОЛБЦА | CONTROL | Просмотреть любое определение |
| ПРОСМОТР ОПРЕДЕЛЕНИЯ ГЛАВНОГО КЛЮЧА СТОЛБЦА | CONTROL | Просмотреть любое определение |
| ПРОСМОТР СОСТОЯНИЯ БАЗЫ ДАННЫХ | CONTROL | просмотр состояния сервера |
| ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ | CONTROL | Просмотреть любое определение |
Permissions
Объект, предоставляющий разрешение (или участник, указанный параметром AS), должен иметь либо само разрешение, выданное с помощью параметра GRANT OPTION, либо разрешение более высокого уровня, которое неявно включает предоставляемое.
При использовании параметра AS налагаются следующие дополнительные требования.
| КАК granting_principal | Необходимо дополнительное разрешение |
|---|---|
| пользователь базы данных; | Разрешение IMPERSONATE для пользователя, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. |
| пользователь базы данных, сопоставленный с именем входа Windows; | Разрешение IMPERSONATE для пользователя, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. |
| Пользователь базы данных, сопоставленный группе Windows | Членство в группе Windows, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. |
| пользователь базы данных, сопоставленный с сертификатом; | Членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. |
| пользователь базы данных, сопоставленный с асимметричным ключом; | Членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. |
| Пользователь базы данных, не сопоставленный ни с одним участником на уровне сервера | Разрешение IMPERSONATE для пользователя, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. |
| роль базы данных; | Разрешение ALTER на роль, членство в предопределенной роли базы данных db_securityadmin, предопределенной роли базы данных db_owner или предопределенной роли сервера sysadmin. |
| Роль приложения | Разрешение ALTER на роль, членство в предопределенной роли базы данных db_securityadmin, предопределенной роли базы данных db_owner или предопределенной роли сервера sysadmin. |
Владельцы объектов могут предоставлять разрешения на объекты, которыми они владеют. Участники, имеющие разрешение CONTROL на защищаемый объект, могут предоставлять разрешение на этот защищаемый объект.
Участники, которым предоставлено разрешение CONTROL SERVER, такие как члены предопределенной роли сервера <legacyBold>sysadmin</legacyBold>, могут предоставлять любое разрешение на любой защищаемый объект сервера.
Examples
A. Предоставление разрешения на создание таблиц
В следующем примере пользователю CREATE TABLE предоставляется разрешение AdventureWorks для базы данных MelanieK.
USE AdventureWorks;
GRANT CREATE TABLE TO MelanieK;
GO
B. Предоставление разрешения SHOWPLAN роли приложения
В следующем примере роли приложения SHOWPLAN предоставляется разрешение AdventureWorks2025 в базе данных AuditMonitor.
Область применения: SQL Server 2008 (10.0.x) и более поздних версий База данных SQL
USE AdventureWorks2022;
GRANT SHOWPLAN TO AuditMonitor;
GO
C. Предоставление разрешения CREATE VIEW с параметром GRANT OPTION
В следующем примере пользователю CREATE VIEW предоставляется разрешение AdventureWorks2025 в базе данных CarmineEs с правом предоставлять разрешение CREATE VIEW другим участникам.
USE AdventureWorks2022;
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;
GO
D. Предоставление разрешения CONTROL пользователю базы данных
В следующем примере пользователю CONTROL предоставляется разрешение AdventureWorks2025 для базы данных Sarah. Пользователь должен существовать в базе данных, которая должна быть настроена в качестве контекста.
USE AdventureWorks2022;
GRANT CONTROL ON DATABASE::AdventureWorks2022 TO Sarah;
GO