7.3 DENY

7.3 DENY


7.3.1 基本语法

  DENY 的语法跟 GRANT 类似。

  下面的示例向 public 拒绝了对 xp_cmdshellEXECUTE 权限。

DENY EXECUTE ON sys.xp_cmdshell TO public


  对一个数据库执行 DENY CONTROL 将隐式执行 DENY CONNECT,这将导致主体不能连接到数据库

  对一个服务器(实例)执行 DENY CONTROL SERVER 将隐式执行 DENY CONNECT SQL,这将导致主体不能连接到服务器。



7.3.2 CASCADE
 

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

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

  以下示例对 SQL Server 登录名 Annika 以及由她授予权限的其他主体拒绝 CONNECT SQL 权限。

DENY CONNECT SQL TO Annika CASCADE



7.3.3 在列级分配权限

  权限可以在列一级进行分配。一个列级的 GRANT 将覆盖一个表级的 DENY。由于这个功能将会带来认知上的不一致,未来的版本可能将删除此功能。

  可以在一个语句中对多个列分配权限。以下的示例中,尽管 User1 拒绝授予 Sales.Customer 的 SELECT 权限,但是 User1 通过列级的授权仍然可以访问 Sales.Customer 的部分列。

DENY SELECT ON Sales.Customer TO User1

GO

GRANT SELECT ON Sales.Customer ( CustomerID, CustomerName) TO User1

GO



本文出自 “SQL Server 管理员指南” 博客,谢绝转载!

你可能感兴趣的:(权限)