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


REVOKE (Transact-SQL)

Удаляет разрешение, выданное или запрещенное ранее.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

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

Синтаксис

Simplified syntax for REVOKE
REVOKE [ GRANT OPTION FOR ]
      { 
        [ ALL [ PRIVILEGES ] ]
        |
                permission [ ( column [ ,...n ] ) ] [ ,...n ]
      }
      [ ON [ class :: ] securable ] 
      { TO | FROM } principal [ ,...n ] 
      [ CASCADE] [ AS principal ]

Аргументы

  • GRANT OPTION FOR
    Указывает, что возможность предоставлять указанное разрешение будет отменена. Данный аргумент необходим при использовании аргумента CASCADE.

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

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

  • ALL

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    Этот параметр не отменяет все возможные разрешения. Указание аргумента ALL при отзыве отменяет следующие разрешения.

    • Если защищаемым объектом является база данных, аргумент ALL относится к разрешениям BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE и CREATE VIEW.

    • Если защищаемым объектом является скалярная функция, аргумент ALL относится к разрешениям EXECUTE и REFERENCES.

    • Если защищаемым объектом является функция с табличным значением, аргумент ALL относится к разрешениям DELETE, INSERT, REFERENCES, SELECT и UPDATE.

    • Если защищаемая сущность является хранимой процедурой, аргумент ALL подразумевает разрешение EXECUTE.

    • Если защищаемым объектом является таблица, аргумент ALL относится к разрешениям DELETE, INSERT, REFERENCES, SELECT и UPDATE.

    • Если защищаемым объектом является представление, аргумент ALL относится к разрешениям DELETE, INSERT, REFERENCES, SELECT и UPDATE.

    Примечание

    Синтаксис REVOKE ALL является устаревшим.В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого отменяйте конкретные разрешения.

  • PRIVILEGES
    Только для обеспечения соответствия стандартам ISO. Не изменяет работу ALL.

  • permission
    Имя разрешения. Допустимые сопоставления разрешений с защищаемыми объектами описаны в разделах, перечисленных ниже в подразделе Синтаксис инструкций при работе с различными защищаемыми объектами данного раздела.

  • column
    Указывает имя столбца таблицы, для которого производится отмена разрешений. Необходимо поставить скобки.

  • class
    Указывает класс защищаемого объекта, для которого производится отмена разрешения. Необходимо ввести квалификатор области ::.

  • securable
    Указывает защищаемый объект, для которого проводится отмена разрешения.

  • TO | FROM principal
    Имя участника. Участники, у которых может быть отменено разрешение на доступ к защищаемому объекту, различны. Дополнительные сведения о допустимых сочетаниях см. в разделе Синтаксис инструкций при работе с различными защищаемыми объектами, приведенном ниже.

  • CASCADE
    Указывает, что разрешение также отменяется и у участников, получивших доступ через текущего участника. Аргумент CASCADE необходимо использовать совместно с аргументом GRANT OPTION FOR.

    Предупреждение

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

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

Замечания

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

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

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

Предупреждение

Запрет (DENY) уровня таблицы имеет меньший приоритет, чем разрешение (GRANT) уровня столбца.Такая несогласованность в иерархии разрешений сохранена в целях обратной совместимости.В будущем выпуске она будет устранена.

Системная хранимая процедура sp_helprotect сообщает о разрешениях на доступ к защищаемому объекту уровня базы данных

Если при отзыве разрешения участником, получившем его с помощью аргумента GRANT OPTION, не был задан аргумент CASCADE, выполнение инструкции REVOKE завершается сбоем.

Разрешения

Участники, обладающие разрешениями CONTROL для защищаемых объектов, могут предоставлять разрешения на доступ к ним. Владельцы объектов могут отменить разрешения на доступ к ним.

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

Синтаксис инструкций при работе с различными защищаемыми объектами

В следующей таблице перечислены защищаемые объекты и разделы, в которых описывается синтаксис инструкций по работе с ними.

Защищаемый объект

Раздел

Роль приложения

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

Сборка

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

Асимметричный ключ

REVOKE, отмена разрешений на асимметричный ключ (Transact-SQL)

Группа доступности

REVOKE (отзыв) разрешений группы доступности (Transact-SQL)

Сертификат

REVOKE, отмена разрешений на сертификат (Transact-SQL)

Контракт

REVOKE, отмена разрешений для компонента Service Broker (Transact-SQL)

База данных

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

Конечная точка

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

Полнотекстовый каталог

REVOKE, отмена разрешений на полнотекстовые объекты (Transact-SQL)

Полнотекстовый список стоп-слов

REVOKE, отмена разрешений на полнотекстовые объекты (Transact-SQL)

Функция

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

Имя входа

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

Тип сообщений

REVOKE, отмена разрешений для компонента Service Broker (Transact-SQL)

Объект

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

Очередь

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

Привязка удаленной службы

REVOKE, отмена разрешений для компонента Service Broker (Transact-SQL)

Роль

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

Маршрут

REVOKE, отмена разрешений для компонента Service Broker (Transact-SQL)

Схема

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

Список свойств поиска

Разрешение на список свойств поиска REVOKE (Transact-SQL)

Сервер

REVOKE, отмена разрешений сервера (Transact-SQL)

Служба

REVOKE, отмена разрешений для компонента Service Broker (Transact-SQL)

Хранимая процедура

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

Симметричный ключ

REVOKE, отмена разрешения на симметричный ключ (Transact-SQL)

Синоним

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

Системные объекты

REVOKE, отмена разрешения на системные объекты (Transact-SQL)

Таблица

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

Тип

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

Пользователь

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

Представление

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

Коллекция XML-схем

REVOKE, отмена разрешений на коллекцию XML-схем (Transact-SQL)

См. также

Справочник

DENY (Transact-SQL)

Инструкция GRANT (Transact-SQL)

sp_addlogin (Transact-SQL)

sp_adduser (Transact-SQL)

sp_changedbowner (Transact-SQL)

sp_dropuser (Transact-SQL)

sp_helprotect (Transact-SQL)

sp_helpuser (Transact-SQL)

Основные понятия

Иерархия разрешений (компонент Database Engine)