REVOKE, отмена разрешения (Transact-SQL)
Отменяет разрешения на таблицу, представление, функцию, возвращающую табличное значение, хранимую процедуру, расширенную хранимую процедуру, скалярную функцию, агрегатную функцию, очередь обслуживания или синоним.
Синтаксис
REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
{ FROM | TO } <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]
<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
Указывает разрешение, которое может быть отменено для содержащегося в схеме объекта. Список разрешений см. в подразделе «Примечания» далее в этом разделе.ALL
Отмена ALL не отменяет все возможные разрешения. Отмена ALL эквивалентна отмене всех разрешений ANSI-92, применимых к указанному объекту. Значение ALL различается для разных типов объектовРазрешения на скалярные функции: EXECUTE, REFERENCES.
Разрешения на возвращающие табличное значение функции: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
Разрешения на хранимые процедуры: EXECUTE.
Разрешения на таблицы: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
Разрешения на представления: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
PRIVILEGES
Включено для обеспечения совместимости с ANSI-92. Не изменяет поведение аргумента ALL.column
Указывает имя столбца в таблице, представлении или функции, возвращающей табличное значение, для которого отменяется разрешение. Круглые скобки ( ) обязательны. Для столбца можно запрещать только разрешения SELECT, REFERENCES и UPDATE. Аргумент column можно задавать в предложении разрешений или после имени защищаемого объекта.ON [ OBJECT :: ] [ schema_name ] . object_name
Указывает объект, для которого отменяется разрешение. Фраза OBJECT необязательна, если указан аргумент schema_name. Если использовано выражение OBJECT, квалификатор области (::) . Если не указан аргумент schema_name, подразумевается схема по умолчанию. Если указан аргумент schema_name, требуется квалификатор области схемы (.) .{ FROM | TO } <database_principal>
Задает участника, для которого отменяется разрешение.GRANT OPTION
Показывает, что право на предоставление заданного разрешения другим участникам будет отменено. Само разрешение отменено не будет.Важно! Если участник обладает указанным разрешением без параметра GRANT, будет отменено само разрешение.
CASCADE
Показывает, что отменяемое разрешение также отменяется у других участников, для которых оно было предоставлено или запрещено данным участником.Внимание! Каскадная отмена разрешения, предоставленного с помощью параметра 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
Указывает пользователя базы данных без соответствующего участника уровня сервера.
Замечания
Сведения об объектах видны в различных представлениях каталога. Дополнительные сведения см. в разделе Представления каталога объектов (Transact-SQL).
Объект — это защищаемый объект уровня схемы, содержащийся в ней, который является родительским элементом в иерархии разрешений. Наиболее специфичные и ограниченные разрешения объекта, которые можно отменить, перечислены в следующей таблице вместе с более общими разрешениями, неявно их содержащими.
Разрешение объекта |
Содержится в разрешении объекта |
Содержится в разрешении схемы |
---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW CHANGE TRACKING. |
CONTROL |
VIEW CHANGE TRACKING. |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Разрешения
Необходимо разрешение CONTROL для данного объекта.
При использовании предложения AS указанный участник должен быть владельцем объекта, разрешения на который отменяются.
Примеры
A. Отмена разрешения SELECT для таблицы
Следующий пример отменяет разрешение SELECT у пользователя RosaQdM для таблицы Person.Address в базе данных AdventureWorks2008R2.
USE AdventureWorks2008R2;
REVOKE SELECT ON OBJECT::Person.Address FROM RosaQdM;
GO
Б. Отмена разрешения EXECUTE для хранимой процедуры
Следующий пример отменяет разрешение EXECUTE для хранимой процедуры HumanResources.uspUpdateEmployeeHireInfo у роли приложения с именем Recruiting11.
USE AdventureWorks2008R2;
REVOKE EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
FROM Recruiting11;
GO
В. Отмена разрешения REFERENCES для представления с CASCADE
Следующий пример отменяет разрешение REFERENCES для столбца BusinessEntityID в представлении HumanResources.vEmployee у пользователя Wanida с CASCADE.
USE AdventureWorks2008R2;
REVOKE REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
FROM Wanida CASCADE;
GO
См. также