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