Поделиться через


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 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