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

Выдает разрешения для имени входа 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

Аргументы

  • 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

CONTROL

CONTROL SERVER

IMPERSONATE

CONTROL

CONTROL SERVER

VIEW DEFINITION

CONTROL

VIEW ANY DEFINITION

ALTER

CONTROL

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

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

В.Предоставление разрешения 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)

Основные понятия

Участники (компонент Database Engine)

Разрешения (компонент Database Engine)