DENY (Transact-SQL)
更新日期: 2006 年 12 月 12 日
拒绝授予主体权限。防止主体通过其组或角色成员身份继承权限。
语法
Simplified syntax for DENY
DENY { ALL [ PRIVILEGES ] }
| permission [ ( column [ ,...n ] ) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ CASCADE] [ AS principal ]
参数
ALL
该选项不拒绝所有可能权限。拒绝 ALL 相当于拒绝下列权限。- 如果安全对象为数据库,则“ALL”表示 BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE 和 CREATE VIEW。
- 如果安全对象为标量函数,则“ALL”表示 EXECUTE 和 REFERENCES。
- 如果安全对象为表值函数,则“ALL”表示 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。
- 如果安全对象是存储过程,则“ALL”表示 EXECUTE。
- 如果安全对象为表,则“ALL”表示 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。
- 如果安全对象为视图,则“ALL”表示 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。
- PRIVILEGES
包含此参数以符合 SQL-92 标准。请不要更改 ALL 的行为。
- permission
权限的名称。下面列出的子主题介绍了不同权限与安全对象之间的有效映射。
- column
指定拒绝将其权限授予他人的表中的列名。需要使用括号“()”。
- class
指定拒绝将其权限授予他人的安全对象的类。需要范围限定符“::”。
- securable
指定拒绝将其权限授予他人的安全对象。
- TO principal
主体的名称。可以对其拒绝安全对象权限的主体随安全对象而异。有关有效的组合,请参阅下面列出的特定于安全对象的主题。
- CASCADE
指示拒绝授予指定主体该权限,同时,对该主体授予了该权限的所有其他主体,也拒绝授予该权限。当主体具有带 GRANT OPTION 的权限时,为必选项。
- 作为 principal
指定一个主体,执行该语句的主体从该主体获得拒绝授予该权限的权利。
备注
DENY 语句的完整语法很复杂。上面的关系图经过了简化,以突出说明其结构。下列主题对拒绝授予特定安全对象的权限时的完整语法进行了说明。
如果某主体的该权限是通过指定 GRANT OPTION 获得的,那么,在撤消其该权限时,如果未指定 CASCADE,则 DENY 将失败。
列级权限优先于对象权限。例如,如果将 DENY 权限应用到一个诸如表之类的基对象,然后将 GRANT 权限应用到此基对象中的某一列,则尽管在此基对象之上有 DENY 权限,GRANT 权限的被授权者仍将可以访问此列。但是,为了确保列级权限存在,必须在对基对象应用权限之后再应用它们。
注意: |
---|
在 SQL Server 2005 中,保留权限层次结构中此方面的不一致是为了向后兼容。在未来的版本中会将其删除。 |
sp_helprotect 系统存储过程可报告对数据库级安全对象的权限。
注意: |
---|
拒绝授予数据库 CONTROL 权限将隐式拒绝授予该数据库 CONNECT 权限。拒绝授予其数据库 CONTROL 权限的主体不能连接到该数据库。同样,拒绝授予 CONTROL SERVER 权限将隐式拒绝授予服务器 CONNECT SQL 权限。拒绝授予其服务器 CONTROL SERVER 权限的主体不能连接到该服务器。 |
权限
调用方(或使用 AS 选项指定的主体)必须对安全对象具有 CONTROL 权限,或对该安全对象具有隐含 CONTROL 权限的更高权限。如果使用 AS 选项,那么指定主体必须拥有其权限被拒绝授予的安全对象。
被授予 CONTROL SERVER 权限的用户(如 sysadmin 固定服务器角色的成员)可以拒绝对服务器中任何安全对象授予权限。被授予数据库 CONTROL 权限的用户(如 db_owner 固定数据库角色的成员)可以拒绝对数据库中任何安全对象授予权限。被授予架构 CONTROL 权限的用户可以拒绝对架构中任何对象授予权限。如果使用 AS 子句,那么指定主体必须拥有其权限被拒绝授予的安全对象。
示例
有关安全对象特定的语法,请参阅以下主题:
应用程序角色 |
|
程序集 |
|
非对称密钥 |
|
证书 |
|
约定 |
|
数据库 |
|
端点 |
|
全文目录 |
|
函数 |
|
登录 |
|
消息类型 |
|
对象 |
|
队列 |
|
远程服务绑定 |
|
角色 |
|
路由 |
|
架构 |
|
服务器 |
|
服务 |
|
存储过程 |
|
对称密钥 |
|
同义词 |
|
系统对象 |
|
表 |
|
类型 |
|
用户 |
|
视图 |
|
XML 架构集合 |
请参阅
参考
DENY (Transact-SQL)
REVOKE (Transact-SQL)
sp_addgroup (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_changegroup (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropgroup (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpgroup (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 12 月 12 日 |
|