Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: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 на вычисляемый столбец.
База данных — это защищаемый объект, хранящийся на сервере, который является родителем базы данных в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно предоставлять в базе данных, перечислены в следующей таблице вместе с общими разрешениями, неявно содержащими их.
Database permission | Содержится в разрешении базы данных | Подразумевается в разрешении сервера |
---|---|---|
УПРАВЛЕНИЕ МАССОВЫМИ ОПЕРАЦИЯМИ С БАЗОЙ ДАННЫХ Область применения: База данных SQL. |
CONTROL | CONTROL SERVER |
ALTER | CONTROL | ALTER ANY DATABASE (ИЗМЕНЕНИЕ ЛЮБОЙ БАЗЫ ДАННЫХ). |
ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ ПРИЛОЖЕНИЯ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБУЮ СБОРКУ | ALTER | CONTROL SERVER |
Изменить любой асимметричный ключ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБОЙ СЕРТИФИКАТ | ALTER | CONTROL SERVER |
Изменить любой ключ шифрования столбца | ALTER | CONTROL SERVER |
ALTER ANY COLUMN MASTER KEY DEFINITION | ALTER | CONTROL SERVER |
ИЗМЕНЯТЬ ЛЮБОЙ КОНТРАКТ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБУЮ ПРОВЕРКУ БАЗЫ ДАННЫХ | ALTER | ИЗМЕНЕНИЕ ЛЮБОГО АУДИТА СЕРВЕРА |
ИЗМЕНИТЬ ЛЮБОЙ ТРИГГЕР DDL БАЗЫ ДАННЫХ | ALTER | CONTROL SERVER |
Изменение любых уведомлений о событиях базы данных (ALTER ANY DATABASE EVENT NOTIFICATION) | ALTER | ИЗМЕНЕНИЕ ЛЮБОГО УВЕДОМЛЕНИЯ О СОБЫТИИ |
ИЗМЕНИТЬ ЛЮБОЙ СЕССИЮ СОБЫТИЯ БАЗЫ ДАННЫХ Область применения: База данных SQL. |
ALTER | ИЗМЕНИТЬ ЛЮБУЮ СЕССИЮ СОБЫТИЯ |
ИЗМЕНИТЬ ЛЮБУЮ КОНФИГУРАЦИЮ В ОБЛАСТИ БАЗЫ ДАННЫХ Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL. |
CONTROL | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБОЕ ПРОСТРАНСТВО ДАННЫХ | ALTER | CONTROL SERVER |
ИЗМЕНЕНИЕ ЛЮБОГО ВНЕШНЕГО ИСТОЧНИКА ДАННЫХ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБОЙ ВНЕШНИЙ ФОРМАТ ФАЙЛА | ALTER | CONTROL SERVER |
ALTER ANY EXTERNAL LIBRARY Область применения: SQL Server 2017 (14.x). |
CONTROL | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБОЙ ПОЛНОТЕКСТОВЫЙ КАТАЛОГ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБУЮ МАСКУ | CONTROL | CONTROL SERVER |
ИЗМЕНЯТЬ ЛЮБОЙ ТИП СООБЩЕНИЯ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБУЮ УДАЛЕННУЮ СВЯЗЬ СЕРВИСА | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБОЙ МАРШРУТ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБУЮ СХЕМУ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБУЮ ПОЛИТИКУ БЕЗОПАСНОСТИ Область применения: База данных SQL Azure. |
CONTROL | CONTROL SERVER |
ИЗМЕНЕНИЕ ЛЮБОЙ КЛАССИФИКАЦИИ КОНФИДЕНЦИАЛЬНОСТИ Область применения: SQL Server (SQL Server 2019 и более поздних версий) и База данных SQL Azure. |
CONTROL | CONTROL SERVER |
ИЗМЕНЕНИЕ ЛЮБОЙ СЛУЖБЫ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ЛЮБОЙ СИММЕТРИЧНЫЙ КЛЮЧ | ALTER | CONTROL SERVER |
ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ | ALTER | CONTROL SERVER |
AUTHENTICATE | CONTROL | AUTHENTICATE SERVER |
BACKUP DATABASE | CONTROL | CONTROL SERVER |
BACKUP LOG | CONTROL | CONTROL SERVER |
CHECKPOINT | CONTROL | CONTROL SERVER |
CONNECT | CONNECT REPLICATION | CONTROL SERVER |
CONNECT REPLICATION | CONTROL | CONTROL SERVER |
CONTROL | CONTROL | CONTROL SERVER |
CREATE AGGREGATE | ALTER | CONTROL SERVER |
СОЗДАНИЕ ЛЮБОЙ ВНЕШНЕЙ БИБЛИОТЕКИ Область применения: SQL Server 2017 (14.x). |
CONTROL | CONTROL SERVER |
CREATE ASSEMBLY | ИЗМЕНИТЬ ЛЮБУЮ СБОРКУ | CONTROL SERVER |
СОЗДАНИЕ АСИММЕТРИЧНОГО КЛЮЧА | Изменить любой асимметричный ключ | CONTROL SERVER |
CREATE CERTIFICATE | ИЗМЕНИТЬ ЛЮБОЙ СЕРТИФИКАТ | CONTROL SERVER |
CREATE CONTRACT | ИЗМЕНЯТЬ ЛЮБОЙ КОНТРАКТ | CONTROL SERVER |
CREATE DATABASE | CONTROL | CREATE ANY DATABASE (СОЗДАНИЕ ЛЮБОЙ БАЗЫ ДАННЫХ); |
СОЗДАНИЕ УВЕДОМЛЕНИЯ О СОБЫТИЯХ БАЗЫ ДАННЫХ DDL | Изменение любых уведомлений о событиях базы данных (ALTER ANY DATABASE EVENT NOTIFICATION) | СОЗДАНИЕ УВЕДОМЛЕНИЯ О СОБЫТИИ DDL |
CREATE DEFAULT | ALTER | CONTROL SERVER |
СОЗДАНИЕ КАТАЛОГА FULLTEXT | ИЗМЕНИТЬ ЛЮБОЙ ПОЛНОТЕКСТОВЫЙ КАТАЛОГ | CONTROL SERVER |
CREATE FUNCTION | ALTER | CONTROL SERVER |
СОЗДАТЬ ТИП СООБЩЕНИЯ | ИЗМЕНЯТЬ ЛЮБОЙ ТИП СООБЩЕНИЯ | CONTROL SERVER |
CREATE PROCEDURE | ALTER | CONTROL SERVER |
CREATE QUEUE | ALTER | CONTROL SERVER |
СОЗДАНИЕ ПРИВЯЗКИ К УДАЛЕННОЙ СЛУЖБЕ | ИЗМЕНИТЬ ЛЮБУЮ УДАЛЕННУЮ СВЯЗЬ СЕРВИСА | CONTROL SERVER |
CREATE ROLE | ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ | CONTROL SERVER |
CREATE ROUTE | ИЗМЕНИТЬ ЛЮБОЙ МАРШРУТ | CONTROL SERVER |
CREATE RULE | ALTER | CONTROL SERVER |
CREATE SCHEMA | ИЗМЕНИТЬ ЛЮБУЮ СХЕМУ | CONTROL SERVER |
CREATE SERVICE | ИЗМЕНЕНИЕ ЛЮБОЙ СЛУЖБЫ | CONTROL SERVER |
СОЗДАНИЕ СИММЕТРИЧНОГО КЛЮЧА | ИЗМЕНИТЬ ЛЮБОЙ СИММЕТРИЧНЫЙ КЛЮЧ | CONTROL SERVER |
CREATE SYNONYM | ALTER | CONTROL SERVER |
CREATE TABLE | ALTER | CONTROL SERVER |
CREATE TYPE | ALTER | CONTROL SERVER |
CREATE VIEW | ALTER | CONTROL SERVER |
СОЗДАТЬ КОЛЛЕКЦИЮ XML-СХЕМ | ALTER | CONTROL SERVER |
DELETE | CONTROL | CONTROL SERVER |
EXECUTE | CONTROL | CONTROL SERVER |
ВЫПОЛНЕНИЕ ЛЮБОЙ ВНЕШНЕЙ КОНЕЧНОЙ ТОЧКИ Область применения: База данных SQL Azure. |
CONTROL | CONTROL SERVER |
ВЫПОЛНЕНИЕ ЛЮБОГО ВНЕШНЕГО СКРИПТА Область применения: SQL Server 2016 (13.x). |
CONTROL | CONTROL SERVER |
ВЫПОЛНЕНИЕ ВНЕШНЕГО СКРИПТА Область применения: SQL Server 2019 (15.x) |
ВЫПОЛНИТЬ ЛЮБОЙ ВНЕШНИЙ СКРИПТ | CONTROL SERVER |
INSERT | CONTROL | CONTROL SERVER |
Завершить подключение к базе данных Область применения: База данных SQL Azure. |
CONTROL | ИЗМЕНЕНИЕ ЛЮБОГО СОЕДИНЕНИЯ |
REFERENCES | CONTROL | CONTROL SERVER |
SELECT | CONTROL | CONTROL SERVER |
SHOWPLAN | CONTROL | ALTER TRACE |
УВЕДОМЛЕНИЯ О ЗАПРОСЕ НА ПОДПИСКУ | CONTROL | CONTROL SERVER |
TAKE OWNERSHIP | CONTROL | CONTROL SERVER |
UNMASK | CONTROL | CONTROL SERVER |
UPDATE | CONTROL | CONTROL SERVER |
ПРОСМОТР ОПРЕДЕЛЕНИЯ КЛЮЧА ШИФРОВАНИЯ СТОЛБЦА | CONTROL | Просмотреть любое определение |
ПРОСМОТР ОПРЕДЕЛЕНИЯ ГЛАВНОГО КЛЮЧА СТОЛБЦА | CONTROL | Просмотреть любое определение |
ПРОСМОТР СОСТОЯНИЯ БАЗЫ ДАННЫХ | CONTROL | просмотр состояния сервера |
VIEW DEFINITION | CONTROL | Просмотреть любое определение |
Permissions
Объект, предоставляющий разрешение (или участник, указанный параметром AS), должен иметь либо само разрешение, выданное с помощью параметра GRANT OPTION, либо разрешение более высокого уровня, которое неявно включает предоставляемое.
При использовании параметра AS налагаются следующие дополнительные требования.
AS granting_principal | Необходимо дополнительное разрешение |
---|---|
Database user | Разрешение 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. |
Database role | Разрешение ALTER на роль, членство в предопределенной роли базы данных db_securityadmin, предопределенной роли базы данных db_owner или предопределенной роли сервера sysadmin. |
Application role | Разрешение 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
предоставляется разрешение AdventureWorks2022
в базе данных AuditMonitor
.
Область применения: SQL Server 2008 (10.0.x) и более поздних версий База данных SQL
USE AdventureWorks2022;
GRANT SHOWPLAN TO AuditMonitor;
GO
C. Предоставление разрешения CREATE VIEW с параметром GRANT OPTION
В следующем примере пользователю CREATE VIEW
предоставляется разрешение AdventureWorks2022
в базе данных CarmineEs
с правом предоставлять разрешение CREATE VIEW
другим участникам.
USE AdventureWorks2022;
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;
GO
D. Предоставление разрешения CONTROL пользователю базы данных
В следующем примере пользователю CONTROL
предоставляется разрешение AdventureWorks2022
для базы данных Sarah
. Пользователь должен существовать в базе данных, которая должна быть настроена в качестве контекста.
USE AdventureWorks2022;
GRANT CONTROL ON DATABASE::AdventureWorks2022 TO Sarah;
GO