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


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

Область применения: SQL Server

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

Соглашения о синтаксисе 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 ANY AVAILABILITY GROUP
ПОДКЛЮЧЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ПРОИЗВОДИТЕЛЬНОСТИ ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
TAKE OWNERSHIP ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
VIEW DEFINITION ПРОИЗВОДИТЕЛЬНОСТИ VIEW ANY DEFINITION

Разрешения

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

Примеры

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

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

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

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

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

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

См. также

РАЗРЕШЕНИЯ группы доступности (Transact-SQL)
Разрешения группы доступности GRANT (Transact-SQL)
CREATE AVAILABILITY GROUP (Transact-SQL)
sys.availability_groups (Transact-SQL)
Представления каталога групп доступности Always On (Transact-SQL)
Разрешения (ядро СУБД)
Субъекты (ядро СУБД)