GRANT, предоставление разрешений серверам-участникам (Transact-SQL)
Выдает разрешения для имени входа SQL Server.
Соглашения о синтаксисе в Transact-SQL
Синтаксис
GRANT permission [ ,...n ] }
ON LOGIN :: SQL_Server_login
TO <server_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS SQL_Server_login ]
<server_principal> ::=
SQL_Server_login
| SQL_Server_login_from_Windows_login
| SQL_Server_login_from_certificate
| SQL_Server_login_from_AsymKey
Аргументы
- permission
Указывает разрешение, которое может быть выдано для имени входа SQL Server. Список разрешений см. далее в этом разделе, в подразделе «Примечания».
- LOGIN :: SQL_Server_login
Указывает имя входа SQL Server, которому предоставляется разрешение. Требуется квалификатор области (::).
- TO <server_principal>
Указывает имя входа SQL Server, которому предоставляется разрешение.
- SQL_Server_login
Указывает имя входа SQL Server.
- SQL_Server_login_from_Windows_login
Указывает имя входа SQL Server, созданное из учетной записи Windows.
- SQL_Server_login_from_certificate
Указывает имя входа SQL Server, сопоставленное с сертификатом.
- SQL_Server_login_from_AsymKey
Указывает имя входа SQL Server, сопоставленное с ассиметричным ключом.
- WITH GRANT OPTION
Показывает, что участнику будет также предоставлена возможность выдавать указанное разрешение другим участникам.
- AS SQL_Server_login
Указывает имя входа SQL Server, с использованием которого участник, выполняющий этот запрос, осуществляет свое право на выдачу разрешения.
Замечания
Разрешения в области сервера могут быть выданы только в случае, если текущей базой данных является база данных master.
Данные о серверных разрешениях отображаются в представлении каталога sys.server_permissions. Данные об серверах-участниках отображаются в представлении каталога sys.server_principals.
Имя входа SQL Server является защищаемым на уровне сервера. Наиболее специфичные и ограниченные разрешения, которые могут быть выданы для имени входа SQL Server, перечислены в следующей таблице вместе с общими разрешениями, неявно содержащими их.
Разрешение имени входа SQL Server | Содержится в разрешении имени входа SQL Server | Содержится в разрешении сервера |
---|---|---|
CONTROL |
CONTROL |
CONTROL SERVER |
IMPERSONATE |
CONTROL |
CONTROL SERVER |
VIEW DEFINITION |
CONTROL |
VIEW ANY DEFINITION |
ALTER |
CONTROL |
ALTER ANY LOGIN |
Разрешения
Требует разрешение CONTROL для имени входа или разрешение ALTER ANY LOGIN для сервера.
Примеры
А. Выдача разрешения IMPERSONATE для имени входа
В следующем примере разрешение IMPERSONATE
для имени входа SQL Server
выдается имени входа SQL Server, созданному на основе пользователя Windows AdvWorks\YoonM
.
USE master;
GRANT IMPERSONATE ON LOGIN::WanidaBenshoof to [AdvWorks\YoonM];
GO
Б. Выдача разрешения VIEW DEFINITION с параметром GRANT OPTION
В следующем примере разрешение VIEW DEFINITION
для имени входа SQL Server EricKurjan
выдается имени входа SQL Server RMeyyappan
с параметром GRANT OPTION
.
USE master;
GRANT VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan
WITH GRANT OPTION;
GO
См. также
Справочник
sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)
CREATE LOGIN (Transact-SQL)