DENY, запрет разрешения участника на уровне сервера (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Запрещает разрешения, предоставленные при входе SQL Server.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DENY permission [ ,...n ] }
ON
{ [ LOGIN :: SQL_Server_login ]
| [ SERVER ROLE :: server_role ] }
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
Указывает роль сервера, для которой запрещается разрешение. Квалификатор области (::) является обязательным.
TO <server_principal>
Указывает роль входа ИЛИ сервера SQL Server, которой предоставляется разрешение.
TO SQL_Server_login
Указывает имя входа 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
Название определения роли сервера.
CASCADE
Указывает, что запрещаемое разрешение также запрещается для других участников, которым оно было предоставлено данным участником.
AS SQL_Server_login
Указывает имя входа SQL Server, из которого субъект, выполняющий этот запрос, получает право запретить разрешение.
Замечания
Разрешения в области сервера могут запрещаться только в том случае, если текущей базой данных является master.
Данные о разрешениях сервера отображаются в представлении каталога sys.server_permissions. Данные о серверах-субъектах отображаются в представлении каталога sys.server_principals.
Инструкция DENY завершается ошибкой, если разрешение запрещается субъекту, который ранее предоставил его через GRANT OPTION, и при этом не указано предложение CASCADE.
Имена входа SQL Server и роли сервера являются защищаемыми на уровне сервера. Наиболее конкретные и ограниченные разрешения, которые могут быть отклонены в роли входа SQL Server или сервера, перечислены в следующей таблице вместе с более общими разрешениями, которые включают их в результате.
Разрешение для имени входа SQL Server или роли сервера | Содержится в разрешении для имени входа SQL Server или роли сервера | Подразумевается в разрешении сервера |
---|---|---|
ПРОИЗВОДИТЕЛЬНОСТИ | ПРОИЗВОДИТЕЛЬНОСТИ | CONTROL SERVER |
IMPERSONATE | ПРОИЗВОДИТЕЛЬНОСТИ | CONTROL SERVER |
VIEW DEFINITION | ПРОИЗВОДИТЕЛЬНОСТИ | VIEW ANY DEFINITION |
ИЗМЕНИТЬ | ПРОИЗВОДИТЕЛЬНОСТИ | 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;
DENY IMPERSONATE ON LOGIN::WanidaBenshoof TO [AdvWorks\YoonM];
GO
B. Запрещение разрешения VIEW DEFINITION с параметром CASCADE
В следующем примере запрещено VIEW DEFINITION
разрешение на вход SQL Server в имя входа EricKurjan
RMeyyappan
SQL Server. Параметр CASCADE
указывает, что разрешение VIEW DEFINITION
на EricKurjan
будет также запрещено участникам, которым RMeyyappan
его предоставил ранее.
USE master;
DENY VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan
CASCADE;
GO
В. Запрещение разрешения VIEW DEFINITION для роли сервера
В следующем примере разрешение VIEW DEFINITION
для роли сервера Sales
запрещается для роли сервера Auditors
.
USE master;
DENY VIEW DEFINITION ON SERVER ROLE::Sales TO Auditors ;
GO
См. также
sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)
Grant Server Principal Permissions (Transact-SQL)
REVOKE Server Principal Permissions (Transact-SQL)
CREATE LOGIN (Transact-SQL)
Субъекты (ядро СУБД)
Разрешения (ядро СУБД)
Функция безопасности (Transact-SQL)
Хранимые процедуры безопасности (Transact-SQL)