(4.5)授权/权限操作
Posted gered
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(4.5)授权/权限操作相关的知识,希望对你有一定的参考价值。
转自:http://blog.51cto.com/jimshu/1176573
一、概述
1、GRANT
将安全对象的权限授予主体。
2、DENY
拒绝授予主体权限。防止主体通过其组或角色成员身份继承权限。
3、REVOKE
取消以前授予或拒绝了的权限。
二、示例
SQL Server 2012的实例中有一个名为SalesDB的数据库。SalesDB包含一个名为Customers的架构,此架构中有一个名为Regions的表。
数据库有一个名为Sales的角色,此角色中有一个名为UserA的用户。
用户UserA被授予对SalesDB.Customers.Regions的Select权限。
角色Sales被授予对架构Customers的Select权限。
1、不允许角色Sales(包括用户UserA)在架构Customers中Select任何表。
DENY SELECT ON Schema::Customers FROM Sales
2、不允许用户UserA在架构Customers中Select任何表。
DENY SELECT ON Schema::Customers FROM UserA
3、移除用户UserA对SalesDB.Customers.Regions的Select权限,同时让用户UserA通过角色Sales的权限仍然可以访问架构Customers中的所有表。
REVOKE SELECT ON Object::Regions FROM UserA
4、不允许角色Sales(包括用户UserA)对SalesDB.Customers.Regions的Select权限。
DENY SELECT ON Object::Regions FROM sales
5、不允许用户UserA对SalesDB.Customers.Regions的Select权限。
DENY SELECT ON Object::Regions FROM UserA
6、移除角色Sales在架构Customers中的Select权限,但用户UserA有SalesDB.Customers.Regions的Select权限。
REVOKE SELECT ON Schema::Customers FROM Sales
三、列级的安全
权限可以在列一级进行分配
可以一个语句中对多个列分配权限
一个列级的 GRANT 将覆盖一个表级的 DENY
GRANT SELECT ON Marketing.Salesperson ( SalespersonID, EmailAlias) TO James; GO DENY SELECT ON Marketing.Salesperson TO Holly; GO GRANT SELECT ON Marketing.Salesperson ( SalespersonID, FirstName, LastName) TO Holly; GO |
四、再次授权(re-grant)
使用 WITH GRANT OPTION 可以使受让者将其得到的授权再次 GRANT 给其他主体
CASCADE 选项同时 REVOKE(或DENY)从受让者发出的授权
GRANT UPDATE ON Marketing.Salesperson TO James WITH GRANT OPTION; GO
REVOKE UPDATE ON Marketing.Salesperson FROM James CASCADE; GO |
以上是关于(4.5)授权/权限操作的主要内容,如果未能解决你的问题,请参考以下文章