DENY, запрет разрешений на тип (Transact-SQL)
Запрещает доступ к типу.
Синтаксис
DENY permission [ ,...n ] ON TYPE :: [ schema_name . ] type_name
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 задан, необходим квалификатор области схемы (.).TO <database_principal>
Задает участника, для которого запрещается разрешение.CASCADE
Показывает, что запрещаемое разрешение также запрещается для других участников, которым оно было предоставлено данным участником.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
Задает пользователя базы данных без соответствующего участника уровня сервера.
Замечания
Тип — это защищаемый объект уровня схемы; он содержится в схеме, являющейся его родителем в иерархии разрешений.
Важно! |
---|
Разрешения 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 с CASCADE для пользовательского типа PhoneNumber у KhalidR. PhoneNumber находится в схеме Telemarketing.
DENY VIEW DEFINITION ON TYPE::Telemarketing.PhoneNumber
TO KhalidR CASCADE;
GO