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

Отменяет разрешения, выданные или запрещенные для имени входа SQL Server.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

REVOKE [ GRANT OPTION FOR ] permission [ ,...n ] } 
    ON LOGIN :: SQL_Server_login
    { FROM | TO } <server_principal> [ ,...n ]
    [ CASCADE ]
    [ 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 для которой отменяются разрешения. Необходим квалификатор области (::).

  • { FROM | TO } SQL_Server_login
    Указывает имя входа 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, сопоставленное с ассиметричным ключом.

  • GRANT OPTION
    Показывает, что право на предоставление указанного разрешения другим участникам будет отменено. Само разрешение отменено не будет.

    Важное примечаниеВажно!

    Если участник обладает указанным разрешением без параметра GRANT, будет отменено и само разрешение.

  • CASCADE
    Показывает, что отменяемое разрешение также отменяется у участников, получивших его через данного участника или отозванного им.

    ПредупреждениеВнимание!

    Каскадная отмена разрешения, предоставленного с помощью параметра WITH GRANT OPTION, приведет к отмене разрешений GRANT и DENY для этого разрешения.

  • AS SQL_Server_login
    Указывает имя входа SQL Server, от которого участник, выполняющий этот запрос, получает права для отмены разрешения.

Замечания

Имя входа 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 ServerWanidaBenshoof от имени входа SQL Server, созданного из пользователя Windows AdvWorks\YoonM.

USE master;
REVOKE IMPERSONATE ON LOGIN::WanidaBenshoof FROM [AdvWorks\YoonM];
GO

Б. Отмена разрешения VIEW DEFINITION с параметром CASCADE

Следующий пример отменяет разрешение VIEW DEFINITION для имени входа SQL ServerEricKurjan от имени входа SQL ServerRMeyyappan. Параметр CASCADE показывает, что разрешение VIEW DEFINITION для EricKurjan будет также отменено для участников, которым RMeyyappan предоставил это разрешение.

USE master;
REVOKE VIEW DEFINITION ON LOGIN::EricKurjan FROM RMeyyappan 
    CASCADE;
GO