REVOKE, отмена разрешения на тип (Transact-SQL)
Отменяет разрешения на использование типа.
Синтаксис
REVOKE [ GRANT OPTION FOR ] permission [ ,...n ]
ON TYPE :: [ schema_name ]. type_name
{ FROM | TO } <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]
<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
Разрешение на работу с типом, которое можно отменить. Список разрешений см. ниже, в подразделе «Примечания».ON TYPE :: [ schema_name ] . type_name
Тип, разрешение на работу с которым отменяется. Квалификатор области (::) необходим. Если аргумент schema_name не указан, используется схема по умолчанию. Если аргумент schema_name указан, то необходим квалификатор области схемы (.).{ FROM | TO } <участник_базы_данных>
Участник, для которого отменяется разрешение.GRANT OPTION
Показывает, что право на предоставление заданного разрешения другим участникам будет отменено. Само разрешение отменено не будет.Важно! Если участник обладает заданным разрешением без аргумента GRANT, будет отменено и само разрешение.
CASCADE
Показывает, что отменяемое разрешение отменяется и для других участников, которым оно было предоставлено или для которых оно было запрещено участником.Внимание! Каскадная отмена разрешения, предоставленного с помощью аргумента GRANT OPTION, приведет к отмене прав GRANT и DENY для этого разрешения.
AS <участник_базы_данных>
Участник, от которого другой участник, выполняющий данный запрос, получает право на отмену разрешения.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
Пользователь базы данных без соответствующего участника уровня сервера.
Замечания
Тип — это защищаемый на уровне схемы элемент схемы, которая является его родителем в иерархии разрешений.
Важно! |
---|
Разрешения GRANT, DENY, и REVOKE не применяются к системным типам. Определяемым пользователем типам можно предоставлять разрешения. Дополнительные сведения об определяемых пользователем типах см. в разделе Работа с определяемыми пользователем типами в SQL Server. |
Самые специфичные и ограниченные разрешения на работу с типом, которые можно отменить, приведены в следующей таблице вместе с общими разрешениями, неявно их охватывающими.
Разрешение типа |
Содержится в разрешении типа данных |
Содержится в разрешении схемы |
---|---|---|
CONTROL |
CONTROL |
CONTROL |
EXECUTE |
CONTROL |
EXECUTE |
REFERENCES |
CONTROL |
REFERENCES |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Разрешения
Требуется связанное с типом разрешение CONTROL. Если используется предложение AS, заданный участник должен быть владельцем типа.
Примеры
Следующий код отменяет разрешение VIEW DEFINITION, связанное с пользовательским типом PhoneNumber, для пользователя KhalidR. Аргумент CASCADE показывает, что разрешение VIEW DEFINITION будет отменено еще и для участников, которым его предоставил пользователь KhalidR. Тип PhoneNumber относится к схеме Telemarketing.
REVOKE VIEW DEFINITION ON TYPE::Telemarketing.PhoneNumber
FROM KhalidR CASCADE;
GO