请单击以进行评分并提供反馈
TechNet
TechNet 库
SQL Server
SQL Server 2008
数据库引擎
技术参考
社区内容
本节内容
统计 批注 (0)
全部折叠/全部展开 全部折叠
同时提供下列产品的其他版本:
SQL Server 2008 联机丛书(2009 年 7 月)
DENY (Transact-SQL)

拒绝授予主体权限。防止主体通过其组或角色成员身份继承权限。

主题链接图标 Transact-SQL 语法约定

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。
ms188338.note(zh-cn,SQL.100).gif注意:
不推荐使用 DENY ALL 语法。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。应改为拒绝特定权限。

PRIVILEGES

包含此参数是为了符合 ISO 标准。请不要更改 ALL 的行为。

permission

权限的名称。下面列出的子主题介绍了不同权限与安全对象之间的有效映射。

column

指定拒绝将其权限授予他人的表中的列名。需要使用括号“()”。

class

指定拒绝将其权限授予他人的安全对象的类。需要范围限定符“::”。

securable

指定拒绝将其权限授予他人的安全对象。

TO principal

主体的名称。可以对其拒绝安全对象权限的主体随安全对象而异。有关有效的组合,请参阅下面列出的特定于安全对象的主题。

CASCADE

指示拒绝授予指定主体该权限,同时,对该主体授予了该权限的所有其他主体,也拒绝授予该权限。当主体具有带 GRANT OPTION 的权限时,为必选项。

作为 principal

指定一个主体,执行该语句的主体从该主体获得拒绝授予该权限的权利。

DENY 语句的完整语法很复杂。上面的关系图经过了简化,以突出说明其结构。下列主题对拒绝授予特定安全对象的权限时的完整语法进行了说明。

如果拒绝授予某一主体某种权限时未指定 CASCADE,而之前授予该主体此权限时指定了 GRANT OPTION,则 DENY 将失败。

sp_helprotect 系统存储过程可报告对数据库级安全对象的权限。

ms188338.Caution(zh-cn,SQL.100).gif注意:
表级 DENY 并不优先于列级 GRANT。保留权限层次结构中这方面的不一致是为了向后兼容。在未来的版本中会将其删除。

ms188338.Caution(zh-cn,SQL.100).gif注意:
拒绝授予数据库 CONTROL 权限将隐式拒绝授予该数据库 CONNECT 权限。如果拒绝授予某一主体对某一数据库的 CONTROL 权限,该主体将无法连接到该数据库。

ms188338.Caution(zh-cn,SQL.100).gif注意:
拒绝授予 CONTROL SERVER 权限将隐式拒绝授予对服务器的 CONNECT SQL 权限。如果拒绝授予某一主体对某一服务器的 CONTROL SERVER 权限,该主体将无法连接到该服务器。

调用方(或使用 AS 选项指定的主体)必须对安全对象具有 CONTROL 权限,或对该安全对象具有隐含 CONTROL 权限的更高权限。如果使用 AS 选项,那么指定主体必须拥有其权限被拒绝授予的安全对象。

被授予 CONTROL SERVER 权限的用户(如 sysadmin 固定服务器角色的成员)可以拒绝对服务器中任何安全对象授予权限。被授予数据库 CONTROL 权限的用户(如 db_owner 固定数据库角色的成员)可以拒绝对数据库中任何安全对象授予权限。被授予架构 CONTROL 权限的用户可以拒绝对架构中任何对象授予权限。如果使用 AS 子句,那么指定主体必须拥有其权限被拒绝授予的安全对象。

社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利 | 商标 | 隐私权声明
Page view tracker