REVOKE, отмена разрешения (Transact-SQL)
Отменяет разрешения на таблицу, представление, возвращающую табличное значение функцию, хранимую процедуру, расширенную хранимую процедуру, скалярную функцию, агрегатную функцию, очередь обслуживания или синоним.
Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск). |
Cинтаксические обозначения в 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 может быть указан в предложении PERMISSIONS или после имени защищаемого объекта.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 указанный участник должен быть владельцем объекта, разрешения на который отменяются.
Примеры
А.Отмена разрешения SELECT для таблицы
Следующий пример отменяет разрешение SELECT у пользователя RosaQdM для таблицы Person.Address в базе данных AdventureWorks2012.
USE AdventureWorks2012;
REVOKE SELECT ON OBJECT::Person.Address FROM RosaQdM;
GO
Б.Отмена разрешения EXECUTE для хранимой процедуры
Следующий пример отменяет разрешение EXECUTE для хранимой процедуры HumanResources.uspUpdateEmployeeHireInfo у роли приложения с именем Recruiting11.
USE AdventureWorks2012;
REVOKE EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
FROM Recruiting11;
GO
В.Отмена разрешения REFERENCES для представления с CASCADE
Следующий пример отменяет разрешение REFERENCES для столбца BusinessEntityID в представлении HumanResources.vEmployee у пользователя Wanida с CASCADE.
USE AdventureWorks2012;
REVOKE REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
FROM Wanida CASCADE;
GO
См. также
Справочник
GRANT, предоставление разрешений на объект (Transact-SQL)
DENY, запрет разрешений на объект (Transact-SQL)
Представления каталога объектов (Transact-SQL)
sys.fn_builtin_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
Основные понятия
Разрешения (компонент Database Engine)