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


REVOKE, отмена разрешений на участника базы данных (Transact-SQL)

Отменяет разрешения, предоставленные или запрещенные для пользователя базы данных, роли базы данных или роли приложения.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

REVOKE [ GRANT OPTION FOR ] permission [ ,...n ]  
    ON 
    {  [ USER :: database_user ]
       | [ ROLE :: database_role ]
       | [ APPLICATION ROLE :: application_role ]
    }
    { FROM | TO } <database_principal> [ ,...n ]
        [ CASCADE ]
    [ AS <database_principal> ]

<database_principal> ::=
        Database_user 
    | Database_role 
    | Application_role 
    | Database_user_mapped_to_Windows_User 
    | Database_user_mapped_to_Windows_Group 
    | Database_user_mapped_to_certificate 
    | Database_user_mapped_to_asymmetric_key 
    | Database_user_with_no_login 

Аргументы

  • permission
    Указывает разрешение, которое может быть отменено у участника базы данных. Список разрешений см. в подразделе «Примечания» далее в этом разделе.
  • USER ::database_user
    Указывает класс и имя пользователя, у которого отменяется разрешение. Требуется квалификатор области (
    ::
    ).
  • ROLE ::database_role
    Указывает класс и имя роли, у которой отменяется разрешение. Требуется квалификатор области (
    ::
    ).
  • APPLICATION ROLE ::application_role
    Указывает класс и имя роли приложения, у которой отменяется разрешение. Требуется квалификатор области (
    ::
    ).
  • GRANT OPTION
    Показывает, что отменяется право на предоставление указанного разрешения другим участникам. Само разрешение отменено не будет.

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

    ms188356.Caution(ru-ru,SQL.90).gifВнимание!
    Каскадная отмена разрешения, предоставленного с помощью параметра WITH GRANT OPTION, приведет к отмене разрешений GRANT и DENY для этого разрешения.
  • AS <database_principal>
    Указывает участника, от которого участник, выполняющий данный запрос, наследует право на отмену разрешения.
  • Database_user
    Указывает пользователя базы данных.
  • Database_role
    Указывает роль базы данных.
  • Application_role
    Указывает роль приложения.
  • Database_user_mapped_to_Windows_User
    Указывает пользователя базы данных, сопоставленного с пользователем Windows.
  • Database_user_mapped_to_Windows_Group
    Указывает пользователя базы данных, сопоставленного с группой Windows.
  • Database_user_mapped_to_certificate
    Указывает пользователя базы данных, сопоставленного с сертификатом.
  • Database_user_mapped_to_asymmetric_key
    Указывает пользователя базы данных, сопоставленного с асимметричным ключом.
  • Database_user_with_no_login
    Указывает пользователя базы данных, не имеющего соответствующего участника уровня сервера.

Замечания

Разрешения на пользователей базы данных

Пользователь базы данных является защищаемым объектом уровня базы данных, содержащимся в базе данных, являющейся его родительским элементом в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно отменить у пользователя базы данных, перечислены ниже вместе с общими разрешениями, неявно содержащими их.

Разрешение пользователя базы данных Содержится в разрешении пользователя базы данных Содержится в разрешении базы данных

CONTROL

CONTROL

CONTROL

IMPERSONATE

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY USER

VIEW DEFINITION

CONTROL

VIEW DEFINITION

Разрешения на роль базы данных

Роль базы данных является защищаемым объектом уровня базы данных, содержащимся в базе данных, являющейся его родительским элементом в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно отменить у роли базы данных, перечислены ниже вместе с более общими разрешениями, неявно содержащими их.

Разрешение роли базы данных Содержится в разрешении роли базы данных Содержится в разрешении базы данных

CONTROL

CONTROL

CONTROL

TAKE OWNERSHIP

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY ROLE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

Разрешения на роль приложения

Роль приложения — это защищаемый объект уровня базы данных, содержащийся в базе данных, являющейся родительским элементом в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно отменить у роли приложения, перечислены ниже вместе с более общими разрешениями, неявно содержащими их.

Разрешение роли приложения Содержится в разрешении роли приложения Содержится в разрешении базы данных

CONTROL

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY APPLICATION ROLE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

Разрешения

Требуется разрешение CONTROL на указанного участника или разрешение более высокого уровня, включающее в себя разрешение CONTROL.

Участник, получивший разрешение CONTROL на базу данных, например, член фиксированной роли базы данных db_owner, может предоставить любое разрешение на любой защищаемый объект в базе данных.

Примеры

А. Отмена разрешения CONTROL на пользователя у другого пользователя

В следующем примере у пользователя RolandX отменяется разрешение CONTROL на пользователя Wanida базы данных AdventureWorks.

USE AdventureWorks;
REVOKE CONTROL ON USER::Wanida FROM RolandX;
GO

Б. Отмена разрешения VIEW DEFINITION на роль у пользователя, которому оно было предоставлено с параметром WITH GRANT OPTION

В следующем примере у пользователя JinghaoLiu отменяется разрешение VIEW DEFINITION на роль SammamishParking базы данных AdventureWorks. Параметр CASCADE указан, поскольку пользователю JinghaoLiu было предоставлено разрешение VIEW DEFINITION с параметром WITH GRANT OPTION.

USE AdventureWorks;
REVOKE VIEW DEFINITION ON ROLE::SammamishParking 
    FROM JinghaoLiu CASCADE;
GO

В. Отмена разрешения IMPERSONATE на пользователя у роли приложения

В следующем примере у роли приложения AccountsPayable17 отменяется разрешение IMPERSONATE на пользователя HamithaL базы данных AdventureWorks.

USE AdventureWorks;
REVOKE IMPERSONATE ON USER::HamithaL FROM AccountsPayable17;
GO  

См. также

Справочник

GRANT, предоставление разрешений на участника базы данных (Transact-SQL)
DENY, запрет разрешений на участника базы данных (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
CREATE USER (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)
CREATE ROLE (Transact-SQL)
Инструкция GRANT (Transact-SQL)

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

Разрешения
Участники

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

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