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


DENY (Отмена) разрешений группы доступности (Transact-SQL)

Запрещает разрешения в группе доступности AlwaysOn в SQL Server.

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

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

Синтаксис

DENY permission  [ ,...n ] ON AVAILABILITY GROUP :: availability_group_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 AVAILABILITY GROUP ::availability_group_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.availability_groups (Transact-SQL). Сведения о серверных разрешениях видны в представлении каталога sys.server_permissions, а сведения об участниках на уровне сервера видны в представлении каталога sys.server_principals.

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

Разрешения группы доступности

Подразумевается в разрешении группы доступности

Подразумевается в разрешении сервера

ALTER

CONTROL

ALTER ANY AVAILABILITY GROUP

CONNECT

CONTROL

CONTROL SERVER

CONTROL

CONTROL

CONTROL SERVER

TAKE OWNERSHIP

CONTROL

CONTROL SERVER

VIEW DEFINITION

CONTROL

VIEW ANY DEFINITION

Разрешения

Требует разрешения CONTROL для группы доступности или разрешения ALTER ANY AVAILABILTIY GROUP для сервера.

Примеры

А.Запрет разрешения VIEW DEFINITION для группы доступности

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

USE master;
DENY VIEW DEFINITION ON AVAILABILITY GROUP::MyAg TO ZArifin;
GO

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

В следующем примере запрещается разрешение TAKE OWNERSHIP для группы доступности MyAg для пользователя SQL Server PKomosinski с аргументом CASCADE.

USE master;
DENY TAKE OWNERSHIP ON AVAILABILITY GROUP::MyAg TO PKomosinski 
    CASCADE;
GO

См. также

Справочник

REVOKE (отзыв) разрешений группы доступности (Transact-SQL)

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

CREATE AVAILABILITY GROUP (Transact-SQL)

sys.availability_groups (Transact-SQL)

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

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

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

Другие ресурсы

Представления каталога групп доступности AlwaysOn (Transact-SQL)