拒绝授予主体权限。防止主体通过其组或角色成员身份继承权限。
Transact-SQL 语法约定
Simplified syntax for DENY DENY { ALL [ PRIVILEGES ] } | permission [ ( column [ ,...n ] ) ] [ ,...n ] [ ON [ class :: ] securable ] TO principal [ ,...n ] [ CASCADE] [ AS principal ]
该选项不拒绝所有可能权限。拒绝 ALL 相当于拒绝下列权限。
包含此参数是为了符合 ISO 标准。请不要更改 ALL 的行为。
权限的名称。下面列出的子主题介绍了不同权限与安全对象之间的有效映射。
指定拒绝将其权限授予他人的表中的列名。需要使用括号“()”。
指定拒绝将其权限授予他人的安全对象的类。需要范围限定符“::”。
指定拒绝将其权限授予他人的安全对象。
主体的名称。可以对其拒绝安全对象权限的主体随安全对象而异。有关有效的组合,请参阅下面列出的特定于安全对象的主题。
指示拒绝授予指定主体该权限,同时,对该主体授予了该权限的所有其他主体,也拒绝授予该权限。当主体具有带 GRANT OPTION 的权限时,为必选项。
指定一个主体,执行该语句的主体从该主体获得拒绝授予该权限的权利。
DENY 语句的完整语法很复杂。上面的关系图经过了简化,以突出说明其结构。下列主题对拒绝授予特定安全对象的权限时的完整语法进行了说明。
如果拒绝授予某一主体某种权限时未指定 CASCADE,而之前授予该主体此权限时指定了 GRANT OPTION,则 DENY 将失败。
sp_helprotect 系统存储过程可报告对数据库级安全对象的权限。
调用方(或使用 AS 选项指定的主体)必须对安全对象具有 CONTROL 权限,或对该安全对象具有隐含 CONTROL 权限的更高权限。如果使用 AS 选项,那么指定主体必须拥有其权限被拒绝授予的安全对象。
被授予 CONTROL SERVER 权限的用户(如 sysadmin 固定服务器角色的成员)可以拒绝对服务器中任何安全对象授予权限。被授予数据库 CONTROL 权限的用户(如 db_owner 固定数据库角色的成员)可以拒绝对数据库中任何安全对象授予权限。被授予架构 CONTROL 权限的用户可以拒绝对架构中任何对象授予权限。如果使用 AS 子句,那么指定主体必须拥有其权限被拒绝授予的安全对象。
有关安全对象特定的语法,请参阅以下主题:
应用程序角色
DENY 数据库主体权限 (Transact-SQL)
程序集
DENY 程序集权限 (Transact-SQL)
非对称密钥
DENY 非对称密钥权限 (Transact-SQL)
证书
DENY 证书权限 (Transact-SQL)
约定
DENY Service Broker 权限 (Transact-SQL)
数据库
DENY 数据库权限 (Transact-SQL)
端点
DENY 端点权限 (Transact-SQL)
全文目录
DENY 全文权限 (Transact-SQL)
全文非索引字表
函数
DENY 对象权限 (Transact-SQL)
登录名
DENY 服务器主体权限 (Transact-SQL)
消息类型
对象
队列
远程服务绑定
角色
路由
架构
DENY 架构权限 (Transact-SQL)
服务器
DENY 服务器权限 (Transact-SQL)
服务
存储过程
对称密钥
DENY 对称密钥权限 (Transact-SQL)
同义词
系统对象
DENY 系统对象权限 (Transact-SQL)
表
类型
DENY 类型权限 (Transact-SQL)
用户
视图
XML 架构集合
DENY XML 架构集合权限 (Transact-SQL)