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

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

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

Синтаксис

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

Аргументы

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

  • LOGIN :: SQL_Server_login
    Указывает имя входа SQL Server для которой отменяются разрешения. Требуется квалификатор области (::).

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

  • { FROM | 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
    Указывает имя определяемой пользователем роли сервера.

  • 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

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;
REVOKE IMPERSONATE ON LOGIN::WanidaBenshoof FROM [AdvWorks\YoonM];
GO

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

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

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

В.Отмена разрешения VIEW DEFINITION для роли сервера

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

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

См. также

Справочник

sys.server_principals (Transact-SQL)

sys.server_permissions (Transact-SQL)

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

DENY, запрет разрешения участника на уровне сервера (Transact-SQL)

CREATE LOGIN (Transact-SQL)

Функции безопасности (Transact-SQL)

Хранимые процедуры безопасности (Transact-SQL)

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

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

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