REVOKE, отмена разрешений сервера (Transact-SQL)
Отменяет разрешения GRANT и DENY на уровне сервера.
Синтаксические обозначения Transact-SQL
Синтаксис
REVOKE [ GRANT OPTION FOR ] permission [ ,...n ]
{ TO | FROM } <grantee_principal> [ ,...n ]
[ CASCADE ]
[ AS <grantor_principal> ]
<grantee_principal> ::= SQL_Server_login
| SQL_Server_login_mapped_to_Windows_login
| SQL_Server_login_mapped_to_Windows_group
| SQL_Server_login_mapped_to_certificate
| SQL_Server_login_mapped_to_asymmetric_key
| server_role
<grantor_principal> ::= SQL_Server_login
| SQL_Server_login_mapped_to_Windows_login
| SQL_Server_login_mapped_to_Windows_group
| SQL_Server_login_mapped_to_certificate
| SQL_Server_login_mapped_to_asymmetric_key
| server_role
Аргументы
permission
Определяет разрешение, которое может быть предоставлено на сервер. Список разрешений см. в подразделе «Примечания» далее в этом разделе.{ TO | FROM } <grantee_principal>
Указывает участника, для которого отменяется разрешение.AS <grantor_principal>
Указывает участника, от имени которого участник, выполняющий данный запрос, наследует право отмены разрешения.GRANT OPTION FOR
Указывает, что право на предоставление указанного разрешения другим участникам будет отменено. Само разрешение отменено не будет.Важно! Если участник обладает указанным разрешением без параметра GRANT, будет отменено само разрешение.
CASCADE
Показывает, что отменяемое разрешение также отменяется у других участников, для которых оно было предоставлено или запрещено данным участником.Внимание! Каскадная отмена разрешения, предоставленного с помощью аргумента WITH GRANT OPTION, приведет к отмене разрешений GRANT и DENY для данного разрешения.
SQL_Server_login
Указывает имя входа SQL Server.SQL_Server_login_mapped_to_Windows_login
Указывает имя входа SQL Server, сопоставленное с именем входа Windows.SQL_Server_login_mapped_to_Windows_group
Указывает имя входа SQL Server, сопоставленное с группой Windows.SQL_Server_login_mapped_to_certificate
Указывает имя входа SQL Server, сопоставленное с сертификатом.SQL_Server_login_mapped_to_asymmetric_key
Указывает имя входа SQL Server, сопоставленное с асимметричным ключом.server_role
Указывает определяемую пользователем роль сервера.
Замечания
Разрешения в области сервера могут быть отменены только в том случае, если текущей базой данных является master.
REVOKE удаляет как разрешение GRANT, так и разрешение DENY.
REVOKE GRANT OPTION FOR используется для отзыва права повторно предоставлять указанное разрешение. Если участник имеет право предоставлять данное разрешение, право предоставления будет отозвано, но само разрешение не отменяется. Однако если участник имеет указанное разрешение без аргумента GRANT, то будет отменено и само разрешение.
Сведения о разрешениях для сервера можно просмотреть в представлении каталога sys.server_permissions, а сведения об участниках на уровне сервера — в представлении каталога sys.server_principals. Сведения о членстве ролей сервера можно просмотреть в представлении каталога sys.server_role_members.
Сервер является наивысшим уровнем в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно отменять на сервере, перечислены в следующей таблице.
Разрешение сервера |
Содержится в разрешении сервера |
---|---|
ADMINISTER BULK OPERATIONS |
CONTROL SERVER |
ALTER ANY AVAILABILITY GROUP |
CONTROL SERVER |
ALTER ANY CONNECTION |
CONTROL SERVER |
ALTER ANY CREDENTIAL |
CONTROL SERVER |
ALTER ANY DATABASE |
CONTROL SERVER |
ALTER ANY ENDPOINT |
CONTROL SERVER |
ALTER ANY EVENT NOTIFICATION |
CONTROL SERVER |
ALTER ANY EVENT SESSION |
CONTROL SERVER |
ALTER ANY LINKED SERVER |
CONTROL SERVER |
ALTER ANY LOGIN |
CONTROL SERVER |
ALTER ANY SERVER AUDIT |
CONTROL SERVER |
ALTER ANY SERVER ROLE |
CONTROL SERVER |
ALTER RESOURCES |
CONTROL SERVER |
ALTER SERVER STATE |
CONTROL SERVER |
ALTER SETTINGS |
CONTROL SERVER |
ALTER TRACE |
CONTROL SERVER |
AUTHENTICATE SERVER |
CONTROL SERVER |
CONNECT SQL |
CONTROL SERVER |
CONTROL SERVER |
CONTROL SERVER |
CREATE ANY DATABASE |
ALTER ANY DATABASE |
CREATE AVAILABILITY GROUP |
ALTER ANY AVAILABILITY GROUP |
CREATE DDL EVENT NOTIFICATION |
ALTER ANY EVENT NOTIFICATION |
CREATE ENDPOINT |
ALTER ANY ENDPOINT |
CREATE TRACE EVENT NOTIFICATION |
ALTER ANY EVENT NOTIFICATION |
EXTERNAL ACCESS ASSEMBLY |
CONTROL SERVER |
SHUTDOWN |
CONTROL SERVER |
UNSAFE ASSEMBLY |
CONTROL SERVER |
VIEW ANY DATABASE |
VIEW ANY DEFINITION |
VIEW ANY DEFINITION |
CONTROL SERVER |
VIEW SERVER STATE |
ALTER SERVER STATE |
Разрешения
Требует разрешения CONTROL SERVER или членства в предопределенной роли сервера sysadmin.
Примеры
А.Отмена разрешения у имени входа
В следующем примере разрешение VIEW SERVER STATE отменяется у имени входа SQL Server WanidaBenshoof.
USE master;
REVOKE VIEW SERVER STATE FROM WanidaBenshoof;
GO
Б.Отмена параметра WITH GRANT
В следующем примере разрешение CONNECT SQL отменяется у имени входа SQL Server JanethEsteves.
USE master;
REVOKE GRANT OPTION FOR CONNECT SQL FROM JanethEsteves;
GO
У этого имени входа остается разрешение CONNECT SQL, но оно не может более предоставлять такое разрешение другим участникам.
См. также
Справочник
Инструкция GRANT (Transact-SQL)
DENY, запрет разрешений на сервере (Transact-SQL)
REVOKE, отмена разрешений сервера (Transact-SQL)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)