REVOKE (Transact-SQL)
Удаляет разрешение, выданное или запрещенное ранее.
Соглашения о синтаксисе в 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
Данный параметр не отменяет все возможные разрешения. Указание аргумента 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.
- PRIVILEGES
Используется в режиме совместимости с SQL-92. Не изменяет работу 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. Однако отмена разрешения на более высоком уровне не имеет более высокого приоритета.
Внимание! |
---|
В SQL Server 2005 параметр DENY на уровне таблицы не имеет преимущества над параметром GRANT на уровне столбца. Такая несогласованность иерархии разрешений предназначена для обеспечения обратной совместимости. В дальнейших выпусках данная особенность будет устранена. |
Системная хранимая процедура sp_helprotect сообщает о разрешениях на доступ к защищаемым объектам уровня базы данных
Если при отзыве разрешения участником, получившем его с помощью аргумента GRANT OPTION, не был задан аргумент CASCADE, выполнение инструкции REVOKE завершается сбоем.
Разрешения
Участники, обладающие разрешениями CONTROL для защищаемых объектов, могут предоставлять разрешения на доступ к ним. Владельцы объектов могут отменить разрешения на доступ к ним.
Участники, управляющие выдачей разрешений CONTROL SERVER, например члены фиксированной серверной роли sysadmin, имеют право отзывать любое разрешение на доступ к любому защищаемому объекту сервера. Участники, заведующие выдачей разрешений CONTROL, например члены фиксированной роли базы данных db_owner, имеют право отзывать любое разрешение на доступ к любому защищаемому объекту базы данных. Участники, заведующие выдачей разрешений CONTROL в схеме, имеют право отзывать любое разрешение на доступ к любому объекту внутри схемы.
Синтаксис инструкций при работе с различными защищаемыми объектами
В следующей таблице перечислены защищаемые объекты и подразделы, в которых описывается синтаксис инструкций при работе с ними.
См. также
Справочник
DENY (Transact-SQL)
Инструкция GRANT (Transact-SQL)
sp_addgroup (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
Хранимая процедура sp_changegroup (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropgroup (Transact-SQL)
sp_dropuser (Transact-SQL)
Хранимая процедура sp_helpgroup (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)