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


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

Запрещает выполнение тех или иных операций над конечной точкой.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

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

Синтаксис

DENY permission  [ ,...n ] ON ENDPOINT :: endpoint_name
    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
    Конечная точка, разрешение на работу с которой блокируется. Классификатор области (
    ::
    ) необходим.

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

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

  • 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 на сервере.

Примеры

А.Запрет разрешения VIEW DEFINITION на конечной точке

Следующий код запрещает разрешение VIEW DEFINITION, связанное с конечной точкой Mirror7, для пользователя SQL Server с именем ZArifin.

USE master;
DENY VIEW DEFINITION ON ENDPOINT::Mirror7 TO ZArifin;
GO

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

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

USE master;
DENY TAKE OWNERSHIP ON ENDPOINT::Shipping83 TO PKomosinski 
    CASCADE;
GO

См. также

Справочник

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

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

CREATE ENDPOINT (Transact-SQL)

Представления каталога конечных точек (Transact-SQL)

sys.endpoints (Transact-SQL)

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

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

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