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


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

Отменяет разрешения, предоставленные или запрещенные в конечной точке.

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

Синтаксис

REVOKE [ GRANT OPTION FOR ] permission [ ,...n ] 
    ON ENDPOINT :: endpoint_name
    { 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
    Указывает разрешение, которое может быть дано для конечной точки. Список разрешений см. в подразделе «Примечания» далее в этом разделе.

  • ON ENDPOINT ::endpoint_name
    Указывает конечную точку, для которой выдается разрешение. Требуется квалификатор области (
    ::
    ).

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

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

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

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

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

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

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

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

Замечания

Разрешения в области сервера могут быть отозваны, только если текущей базой данных является master.

Сведения о конечных точках видимы в представлении каталога sys.endpoints. Сведения о серверных разрешениях видимы в представлении каталога sys.server_permissions, а сведения об участниках [системы безопасности] на уровне сервера видимы в представлении каталога sys.server_principals.

Конечная точка — это защищаемый объект уровня сервера. Наиболее точные и ограниченные разрешения, которые можно отменять в оконечной точке, перечислены в следующей таблице вместе с общими разрешениями, неявно содержащими их.

Разрешение конечной точки

Содержится в разрешении конечной точки

Содержится в разрешении сервера

ALTER

CONTROL

ALTER ANY ENDPOINT

CONNECT

CONTROL

CONTROL SERVER

CONTROL

CONTROL

CONTROL SERVER

TAKE OWNERSHIP

CONTROL

CONTROL SERVER

VIEW DEFINITION

CONTROL

VIEW ANY DEFINITION

Разрешения

Требует разрешения CONTROL в конечной точке или разрешения ALTER ANY ENDPOINT на сервере.

Примеры

A. Отмена разрешения VIEW DEFINITION в конечной точке

В следующем примере отменяется разрешение VIEW DEFINITION в конечной точке Mirror7 из имени входа SQL ServerZArifin.

USE master;
REVOKE VIEW DEFINITION ON ENDPOINT::Mirror7 FROM ZArifin;
GO

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

В следующем примере отменяется разрешение TAKE OWNERSHIP в конечной точке Shipping83 из пользователя SQL ServerPKomosinski и из всех участников, которым пользователь PKomosinski предоставил разрешение TAKE OWNERSHIP для Shipping83.

USE master;
REVOKE TAKE OWNERSHIP ON ENDPOINT::Shipping83 FROM PKomosinski 
    CASCADE;
GO