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


REVOKE, отмена разрешения на тип (Transact-SQL)

Отменяет разрешения на использование типа.

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

Синтаксис

REVOKE [ GRANT OPTION FOR ] permission [ ,...n ] 
    ON TYPE :: [ schema_name ]. type_name 
        { 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
    Разрешение на работу с типом, которое можно отменить. Список разрешений см. ниже, в подразделе «Примечания».

  • ON TYPE :: [ schema_name ] . type_name
    Тип, разрешение на работу с которым отменяется. Квалификатор области (::) необходим. Если аргумент schema_name не указан, используется схема по умолчанию. Если аргумент schema_name указан, то необходим квалификатор области схемы (.).

  • { FROM | TO } <участник_базы_данных>
    Участник, для которого отменяется разрешение.

  • GRANT OPTION
    Показывает, что право на предоставление заданного разрешения другим участникам будет отменено. Само разрешение отменено не будет.

    Важное примечаниеВажно!

    Если участник обладает заданным разрешением без аргумента GRANT, будет отменено и само разрешение.

  • CASCADE
    Показывает, что отменяемое разрешение отменяется и для других участников, которым оно было предоставлено или для которых оно было запрещено участником.

    ПредупреждениеВнимание!

    Каскадная отмена разрешения, предоставленного с помощью аргумента GRANT OPTION, приведет к отмене прав GRANT и DENY для этого разрешения.

  • AS <участник_базы_данных>
    Участник, от которого другой участник, выполняющий данный запрос, получает право на отмену разрешения.

  • 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
    Пользователь базы данных без соответствующего участника уровня сервера.

Замечания

Тип — это защищаемый на уровне схемы элемент схемы, которая является его родителем в иерархии разрешений.

Важное примечаниеВажно!

Разрешения GRANT, DENY, и REVOKE не применяются к системным типам. Определяемым пользователем типам можно предоставлять разрешения. Дополнительные сведения об определяемых пользователем типах см. в разделе Работа с определяемыми пользователем типами в SQL Server.

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

Разрешение типа

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

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

CONTROL

CONTROL

CONTROL

EXECUTE

CONTROL

EXECUTE

REFERENCES

CONTROL

REFERENCES

TAKE OWNERSHIP

CONTROL

CONTROL

VIEW DEFINITION

CONTROL

VIEW DEFINITION

Разрешения

Требуется связанное с типом разрешение CONTROL. Если используется предложение AS, заданный участник должен быть владельцем типа.

Примеры

Следующий код отменяет разрешение VIEW DEFINITION, связанное с пользовательским типом PhoneNumber, для пользователя KhalidR. Аргумент CASCADE показывает, что разрешение VIEW DEFINITION будет отменено еще и для участников, которым его предоставил пользователь KhalidR. Тип PhoneNumber относится к схеме Telemarketing.

REVOKE VIEW DEFINITION ON TYPE::Telemarketing.PhoneNumber 
    FROM KhalidR CASCADE;
GO