GRANT, предоставление разрешений участникам на уровне сервера (Transact-SQL)

Применимо к:SQL Server Управляемый экземпляр SQL Azure

Предоставление разрешений для имени входа SQL Server.

Соглашения о синтаксисе Transact-SQL

Синтаксис

GRANT permission [ ,...n ] }   
    ON   
    { [ LOGIN :: SQL_Server_login ]  
      | [ SERVER ROLE :: server_role ] }   
    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   
    | server_role  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

permission
Указывает разрешение, которое может быть предоставлено для учетных данных SQL Server. Список разрешений см. в подразделе "Примечания" далее в этом разделе.

LOGIN ::SQL_Server_login
Указывает учетные данные SQL Server, которым будут представлены разрешения. Квалификатор области (::) является обязательным.

SERVER ROLE ::server_role
Указывает определяемую пользователем роль сервера, которой предоставляется разрешение. Квалификатор области (::) является обязательным.

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, сопоставленного с асимметричным ключом.

server_role
Указывает имя определяемой пользователем роли сервера.

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 SERVER
IMPERSONATE ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
VIEW DEFINITION ПРОИЗВОДИТЕЛЬНОСТИ VIEW ANY DEFINITION
ИЗМЕНИТЬ ПРОИЗВОДИТЕЛЬНОСТИ ALTER ANY LOGIN

ALTER ANY SERVER ROLE

Разрешения

Для имен входа требуется разрешение CONTROL на имя входа или разрешение ALTER ANY LOGIN на сервер.

Для ролей сервера требуется разрешение CONTROL на роль сервера или разрешение ALTER ANY SERVER ROLE на сервер.

Примеры

А. Выдача разрешения IMPERSONATE для имени входа

В следующем примере предоставляется разрешение IMPERSONATE в учетных данных SQL Server WanidaBenshoof для учетных данных SQL Server, созданных из пользователя Windows AdvWorks\YoonM.

USE master;  
GRANT IMPERSONATE ON LOGIN::WanidaBenshoof to [AdvWorks\YoonM];  
GO  

B. Выдача разрешения 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   

C. Предоставление разрешения VIEW DEFINITION на роль сервера

В следующем примере разрешение VIEW DEFINITION для роли сервера Sales предоставляется роли сервера Auditors.

USE master;  
GRANT VIEW DEFINITION ON SERVER ROLE::Sales TO Auditors ;  
GO   

См. также

sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)
CREATE LOGIN (Transact-SQL)
Субъекты (ядро СУБД)
Разрешения (ядро СУБД)
Функция безопасности (Transact-SQL)
Хранимые процедуры безопасности (Transact-SQL)