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


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

<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

Аргументы

  • permission
    Указывает разрешение, которое может быть предоставлено на сервере. Список разрешений см. в подразделе «Примечания» далее в этом разделе.
  • { TO | FROM } <grantee_principal>
    Указывает участника, для которого отменяется разрешение.
  • AS <grantor_principal>
    Указывает участника, от имени которого участник, выполняющий данный запрос, наследует право отмены разрешения.
  • GRANT OPTION FOR
    Указывает, что право на предоставление указанного разрешения другим участникам будет отменено. Само разрешение отменено не будет.

    ms186308.note(ru-ru,SQL.90).gifВажно!
    Если участник обладает заданным разрешением без аргумента GRANT, то будет отменено само разрешение.
  • CASCADE
    Указывает, что отменяемое разрешение также отменяется для других участников, которым оно было предоставлено или запрещено данным участником.

    ms186308.Caution(ru-ru,SQL.90).gifВнимание!
    Каскадная отмена разрешения, предоставленного с помощью аргумента 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, сопоставленное с асимметричным ключом.

Замечания

Разрешения в области сервера могут быть отменены только в том случае, если текущей базой данных является 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 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 LINKED SERVER

CONTROL SERVER

ALTER ANY LOGIN

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 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.

Примеры

A. Отмена разрешения у имени входа

В следующем примере разрешение 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)
DENY, запрет разрешений на сервере (Transact-SQL)
REVOKE, отмена разрешений сервера (Transact-SQL)

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

Иерархия разрешений

Справка и поддержка

Получение помощи по SQL Server 2005