Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: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, LOG, DATABASE, BACKUP, CREATE DEFAULT, , CREATE FUNCTIONCREATE PROCEDURE, , и CREATE RULE. CREATE TABLECREATE 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 МАССОВЫХ ОПЕРАЦИЙ Область применения: База данных SQL. |
CONTROL | сервер управления |
| ALTER | CONTROL | ИЗМЕНЕНИЕ ЛЮБОГО DATABASE |
| ИЗМЕНЕНИЕ ЛЮБОГО APPLICATION ROLE | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО ASSEMBLY | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО ASYMMETRIC KEY | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО CERTIFICATE | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО COLUMN ENCRYPTION KEY | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЕ COLUMN MASTER KEY ОПРЕДЕЛЕНИЕ | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО CONTRACT | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЙ DATABASE АУДИТ | ALTER | ИЗМЕНЕНИЕ ЛЮБОГО SERVER AUDIT |
| ИЗМЕНИТЬ ЛЮБОЙ DATABASE DDL TRIGGER | ALTER | сервер управления |
| ИЗМЕНИТЕ ЛЮБЫЕ DATABASEEVENT NOTIFICATION | ALTER | ИЗМЕНЕНИЕ ЛЮБОГО EVENT NOTIFICATION |
| ИЗМЕНИТЕ ЛЮБЫЕ DATABASEEVENT SESSION Область применения: База данных SQL. |
ALTER | ИЗМЕНЕНИЕ ЛЮБОГО EVENT SESSION |
| ИЗМЕНЕНИЕ ЛЮБОГО DATABASE SCOPED CONFIGURATION Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL. |
CONTROL | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЕ ПРОСТРАНСТВО ДАННЫХ | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО EXTERNAL DATA SOURCE | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО EXTERNAL FILE FORMAT | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО EXTERNAL LIBRARY Область применения: SQL Server 2017 (14.x). |
CONTROL | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО FULLTEXT CATALOG | ALTER | сервер управления |
| ИЗМЕНИТЬ ЛЮБУЮ МАСКУ | CONTROL | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО MESSAGE TYPE | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО REMOTE SERVICE BINDING | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО ROLE | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО ROUTE | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО SCHEMA | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО SECURITY POLICY Область применения: База данных SQL Azure. |
CONTROL | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО SENSITIVITY CLASSIFICATION Область применения: SQL Server (SQL Server 2019 и более поздних версий) и База данных SQL Azure. |
CONTROL | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО SERVICE | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО SYMMETRIC KEY | ALTER | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО USER | ALTER | сервер управления |
| AUTHENTICATE | CONTROL | ПРОВЕРКА ПОДЛИННОСТИ СЕРВЕРА |
| BACKUP DATABASE | CONTROL | сервер управления |
| BACKUP ЖУРНАЛА | CONTROL | сервер управления |
| CHECKPOINT | CONTROL | сервер управления |
| CONNECT | РЕПЛИКАЦИЯ CONNECT | сервер управления |
| РЕПЛИКАЦИЯ CONNECT | CONTROL | сервер управления |
| CONTROL | CONTROL | сервер управления |
| CREATE AGGREGATE | ALTER | сервер управления |
| СОЗДАНИЕ ЛЮБОГО EXTERNAL LIBRARY Область применения: SQL Server 2017 (14.x). |
CONTROL | сервер управления |
| CREATE ASSEMBLY | ИЗМЕНЕНИЕ ЛЮБОГО ASSEMBLY | сервер управления |
| CREATE ASYMMETRIC KEY | ИЗМЕНЕНИЕ ЛЮБОГО ASYMMETRIC KEY | сервер управления |
| CREATE CERTIFICATE | ИЗМЕНЕНИЕ ЛЮБОГО CERTIFICATE | сервер управления |
| CREATE CONTRACT | ИЗМЕНЕНИЕ ЛЮБОГО CONTRACT | сервер управления |
| CREATE DATABASE | CONTROL | СОЗДАНИЕ ЛЮБОГО DATABASE |
| CREATE DATABASE DDL EVENT NOTIFICATION | ИЗМЕНИТЕ ЛЮБЫЕ DATABASEEVENT NOTIFICATION | СОЗДАТЬ DDL EVENT NOTIFICATION |
| CREATE DEFAULT | ALTER | сервер управления |
| CREATE FULLTEXT CATALOG | ИЗМЕНЕНИЕ ЛЮБОГО FULLTEXT CATALOG | сервер управления |
| CREATE FUNCTION | ALTER | сервер управления |
| CREATE MESSAGE TYPE | ИЗМЕНЕНИЕ ЛЮБОГО MESSAGE TYPE | сервер управления |
| CREATE PROCEDURE | ALTER | сервер управления |
| CREATE QUEUE | ALTER | сервер управления |
| CREATE REMOTE SERVICE BINDING | ИЗМЕНЕНИЕ ЛЮБОГО REMOTE SERVICE BINDING | сервер управления |
| CREATE ROLE | ИЗМЕНЕНИЕ ЛЮБОГО ROLE | сервер управления |
| CREATE ROUTE | ИЗМЕНЕНИЕ ЛЮБОГО ROUTE | сервер управления |
| CREATE RULE | ALTER | сервер управления |
| CREATE SCHEMA | ИЗМЕНЕНИЕ ЛЮБОГО SCHEMA | сервер управления |
| CREATE SERVICE | ИЗМЕНЕНИЕ ЛЮБОГО SERVICE | сервер управления |
| CREATE SYMMETRIC KEY | ИЗМЕНЕНИЕ ЛЮБОГО SYMMETRIC KEY | сервер управления |
| CREATE SYNONYM | ALTER | сервер управления |
| CREATE TABLE | ALTER | сервер управления |
| CREATE TYPE | ALTER | сервер управления |
| CREATE VIEW | ALTER | сервер управления |
| CREATE XML SCHEMA COLLECTION | ALTER | сервер управления |
| DELETE | CONTROL | сервер управления |
| EXECUTE | CONTROL | сервер управления |
| ВЫПОЛНЕНИЕ ЛЮБЫХ ВНЕШНИХ ENDPOINT Область применения: База данных SQL Azure. |
CONTROL | сервер управления |
| ВЫПОЛНЕНИЕ ЛЮБОГО ВНЕШНЕГО СКРИПТА Область применения: SQL Server 2016 (13.x). |
CONTROL | сервер управления |
| ВЫПОЛНЕНИЕ ВНЕШНЕГО СКРИПТА Область применения: SQL Server 2019 (15.x) |
ВЫПОЛНИТЬ ЛЮБОЙ ВНЕШНИЙ СКРИПТ | сервер управления |
| INSERT | CONTROL | сервер управления |
| РАЗОРВАТЬ DATABASE СОЕДИНЕНИЕ Область применения: База данных SQL Azure. |
CONTROL | ИЗМЕНЕНИЕ ЛЮБОГО СОЕДИНЕНИЯ |
| REFERENCES | CONTROL | сервер управления |
| SELECT | CONTROL | сервер управления |
| SHOWPLAN | CONTROL | ALTER TRACE (изменение трассировки) |
| УВЕДОМЛЕНИЯ О ЗАПРОСЕ НА ПОДПИСКУ | CONTROL | сервер управления |
| ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ | CONTROL | сервер управления |
| UNMASK | CONTROL | сервер управления |
| UPDATE | CONTROL | сервер управления |
| VIEW ЛЮБОЕ COLUMN ENCRYPTION KEY ОПРЕДЕЛЕНИЕ | CONTROL | VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ |
| VIEW ЛЮБОЕ COLUMN MASTER KEY ОПРЕДЕЛЕНИЕ | CONTROL | VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ |
|
VIEW
DATABASE СОСТОЯНИЕ ПРОИЗВОДИТЕЛЬНОСТИ Область применения: SQL Server 2022 (16.x) и более поздних версий. |
VIEW DATABASE ГОСУДАРСТВА | VIEW СОСТОЯНИЕ ПРОИЗВОДИТЕЛЬНОСТИ СЕРВЕРА |
|
VIEW
DATABASE СОСТОЯНИЕ БЕЗОПАСНОСТИ Область применения: SQL Server 2022 (16.x) и более поздних версий. |
VIEW DATABASE ГОСУДАРСТВА | VIEW СОСТОЯНИЕ БЕЗОПАСНОСТИ СЕРВЕРА |
| VIEW DATABASE ГОСУДАРСТВА | CONTROL | VIEW СОСТОЯНИЕ СЕРВЕРА |
| VIEW ОПРЕДЕЛЕНИЕ | CONTROL | VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ |
|
VIEW ОПРЕДЕЛЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ Область применения: SQL Server 2022 (16.x) и более поздних версий. |
VIEW ОПРЕДЕЛЕНИЕ | VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ |
|
VIEW ОПРЕДЕЛЕНИЕ БЕЗОПАСНОСТИ Область применения: SQL Server 2022 (16.x) и более поздних версий. |
VIEW ОПРЕДЕЛЕНИЕ | VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ БЕЗОПАСНОСТИ |
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 помощью ОПЦИИ
В следующем примере пользователю 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