REVOKE (Transact-SQL)

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsСистема платформы аналитики (PDW)Конечная точка SQL аналитики в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в Microsoft Fabric

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

Соглашения о синтаксисе Transact-SQL

Syntax

Синтаксис для базы данных SQL Server, База данных SQL Azure и Fabric 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 ]  

Синтаксис для Azure Synapse Analytics, параллельного хранилища данных и хранилища Microsoft Fabric

REVOKE
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Arguments

GRANT ВАРИАНТ
Указывает, что возможность предоставлять указанное разрешение будет отменена. Данный аргумент необходим при использовании аргумента CASCADE.

Important

Если у принципала есть указанное разрешение без этой GRANT опции, само разрешение будет отозвано.

ALL
Область применения: SQL Server 2008 (10.0.x) и более поздних версий

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

  • Если защищаемая — база данных, ВСЕ означают BACKUPDATABASE, BACKUP LOG, CREATE DATABASE, , CREATE DEFAULTCREATE FUNCTION, CREATE PROCEDURE, CREATE RULECREATE TABLEи CREATE VIEW.

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

  • Если закрепляемая функция — это функция с таблицным значением, то ALL означает DELETE, INSERT, REFERENCES, SELECT и UPDATE.

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

  • Если защищённая — таблица, то ВСЕ означают DELETE, INSERT, REFERENCES, SELECT и UPDATE.

  • Если закрепляемая — это вид, то ВСЕ означают DELETE, INSERT, REFERENCES, SELECT и UPDATE.

Note

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

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

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

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

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

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

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

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

Caution

Каскадная отмена разрешения, предоставленного С GRANT ОПЦИЕЙ, аннулирует и то, и GRANTDENY это разрешение.

В качестве директора
Используйте предложение AS участника для указания того, что вы отменяете разрешение, которое было предоставлено участником, отличным от вас. Предположим, что пользователь Мария — это участник 12, а пользователь Павел — участник 15. Мария и Павел предоставляют пользователю Степану то же разрешение. В таблице sys.database_permissions разрешения будут указаны дважды, но у каждого из них будет разное значение grantor_prinicpal_id. Мария может отменить разрешение с помощью предложения AS RAUL, чтобы удалить право Павла на предоставление разрешения.

AS в данной инструкции не дает возможность олицетворять другого пользователя.

Remarks

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

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

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

Caution

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

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

Оператор REVOKE провалится, если CASCADE не указан при отзыве разрешения у принципала, которому это разрешение было предоставлено с GRANT указанием OPTION.

Permissions

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

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

Синтаксис, специфичный для закрепляемого

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

Securable Topic
Роль приложения REVOKE Основные права базы данных (Transact-SQL)
Assembly REVOKE Разрешения на сборку (Transact-SQL)
Асимметричный ключ REVOKE Асимметричные разрешения ключей (Transact-SQL)
Группа доступности REVOKE Доступность Группы разрешений (Transact-SQL)
Certificate REVOKE Права на сертификаты (Transact-SQL)
Contract REVOKE Разрешения Service Broker (Transact-SQL)
Database REVOKE Разрешения базы данных (Transact-SQL)
Endpoint REVOKE Разрешения для конечной точки (Transact-SQL)
Учетные данные для базы данных REVOKE Учетная точка данных (Transact-SQL)
Полный текст каталога REVOKE Full-Text Разрешения (Transact-SQL)
Full-Text Стоплист REVOKE Full-Text Разрешения (Transact-SQL)
Function REVOKE Права на объекты (Transact-SQL)
Login REVOKE Разрешения учетной записи уровня сервера (Transact-SQL)
Тип сообщения REVOKE Разрешения Service Broker (Transact-SQL)
Object REVOKE Права на объекты (Transact-SQL)
Queue REVOKE Права на объекты (Transact-SQL)
Привязка удаленной службы REVOKE Разрешения Service Broker (Transact-SQL)
Role REVOKE Основные права базы данных (Transact-SQL)
Route REVOKE Разрешения Service Broker (Transact-SQL)
Schema REVOKE Разрешения на схему (Transact-SQL)
Список свойств поиска REVOKE Поиск разрешений на списки свойств (Transact-SQL)
Server REVOKE Разрешения сервера (Transact-SQL)
Service REVOKE Разрешения Service Broker (Transact-SQL)
Хранимая процедура REVOKE Права на объекты (Transact-SQL)
Симметричный ключ REVOKE Симметричные разрешения ключей (Transact-SQL)
Synonym REVOKE Права на объекты (Transact-SQL)
Системные объекты REVOKE Разрешения системных объектов (Transact-SQL)
Table REVOKE Права на объекты (Transact-SQL)
Type REVOKE Разрешения на введение (Transact-SQL)
User REVOKE Основные права базы данных (Transact-SQL)
View REVOKE Права на объекты (Transact-SQL)
Коллекция схем XML REVOKE Разрешения коллекции XML-схем (Transact-SQL)

Examples

A. Предоставление и отмена разрешения

Применимо к: SQL Server, база данных SQL

В следующем примере создается схема, пользователь автономной базы данных и новая роль в пользовательской базе. Пользователю выдается роль, которой назначается разрешение SELECT для схемы, после чего это разрешение роли удаляется (REVOKE).

CREATE SCHEMA Sales;  
GO
CREATE USER Joe without login;
GO
CREATE ROLE Vendors;
GO
ALTER ROLE Vendors ADD MEMBER Joe; 
GO
GRANT SELECT ON SCHEMA :: Sales TO Vendors;
GO
REVOKE SELECT ON SCHEMA :: Sales TO Vendors;
GO
 

См. также

Иерархия разрешений (ядро СУБД)
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)