REVOKE, отмена разрешения (Transact-SQL)
Отменяет разрешения на таблицу, представление, функцию, возвращающую табличное значение, хранимую процедуру, расширенную хранимую процедуру, скалярную функцию, статистическую функцию, очередь обслуживания или синоним.
Соглашения о синтаксисе в 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 DEFINITION |
CONTROL |
VIEW DEFINITION |
Разрешения
Необходимо разрешение CONTROL для данного объекта.
При использовании предложения AS указанный участник должен быть владельцем объекта, разрешения на который отменяются.
Примеры
A. Отмена разрешения SELECT для таблицы
Следующий пример отменяет разрешение SELECT
у пользователя RosaQdM
для таблицы Person.Address
в базе данных AdventureWorks
.
USE AdventureWorks;
REVOKE SELECT ON OBJECT::Person.Address FROM RosaQdM;
GO
Б. Отмена разрешения EXECUTE для хранимой процедуры
Следующий пример отменяет разрешение EXECUTE
для хранимой процедуры HumanResources.uspUpdateEmployeeHireInfo
у роли приложения с именем Recruiting11
.
USE AdventureWorks;
REVOKE EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
FROM Recruiting11;
GO
В. Отмена разрешения REFERENCES для представления с CASCADE
Следующий пример отменяет разрешение REFERENCES
для столбца EmployeeID
в представлении HumanResources.vEmployee
у пользователя Wanida
с CASCADE
.
USE AdventureWorks;
REVOKE REFERENCES (EmployeeID) ON OBJECT::HumanResources.vEmployee
FROM Wanida CASCADE;
GO
См. также
Справочник
GRANT, предоставление разрешений на объект (Transact-SQL)
DENY, запрет разрешений на объект (Transact-SQL)
Представления каталога объектов (Transact-SQL)
Другие ресурсы
Разрешения
Участники
Защищаемые объекты