GRANT, предоставление разрешений серверам-участникам (Transact-SQL)
Выдает разрешения для имени входа SQL Server.
Синтаксис
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 WanidaBenshoof выдается имени входа SQL Server, созданному на основе пользователя Windows AdvWorks\YoonM.
USE master;
GRANT IMPERSONATE ON LOGIN::WanidaBenshoof to [AdvWorks\YoonM];
GO
Б. Выдача разрешения VIEW DEFINITION с параметром GRANT OPTION
В следующем примере разрешение VIEW DEFINITION для имени входа SQL ServerEricKurjan выдается имени входа SQL ServerRMeyyappan с параметром GRANT OPTION.
USE master;
GRANT VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan
WITH GRANT OPTION;
GO