数据库管理系统提供统一的数据保护功能,确保数据安全、可靠、准确、有效。
了解如何使用角色来管理数据库中的权限。
1.角色的概念
如果用户数量非常多、流量很大,权限管理就会非常复杂。例如,在用户数量较多的系统或交友网站中,对用户进行一一授权是不可行的。
为了使自主授权的执行更加灵活、方便,一些DBMS引入了角色,将众多用户统一为一个整体,以方便管理,简化授权过程。
角色是数据库权限的集合,可以为一组具有相同权限的用户创建角色。
如果不使用角色直接对用户进行授权,那么用户和授权之间将会存在复杂的多对多关系。某个用户可能拥有多个权限,并且某个权限可能被授予不同的用户。这就形成了多对多的复杂网络关系。
用户可以按角色进行分类和分组。如上图所示,用户A、B、C可以分为两个角色,一个角色是学生,另一个角色是老师。
同一类型的用户可以被授予相同的访问权限。如果学生有学生权限,老师就有教师权限。
那么,通过这种方式引入角色后,用户授权就变得简单了,从网络化的复杂结构变成了层次化的结构,简化了授权过程。
2. SQL中的角色命令
在SQL99标准中,使用角色后的授权过程分为以下四个部分或步骤:
用法:
(1)创建角色(标准)
创建角色r1
(2)角色授权
将表S 上的Select 授予给r1
(3) 为用户授予角色
将r1 授予user1
(4) 撤销角色权限
从user1 撤销r1
(撤销r1的权限。如果user1还有其他权限,则保留。)
授权过程由前三部分组成。
一旦授予用户某些权限,该用户的权限也可以被撤销。
SQL Server中的用法(与标准不同的是,该命令使用存储过程进行角色管理,所有存储过程均以“Sp_”开头,后跟过程名称):
sp_addrole ‘r1’ //创建角色
sp_addrolemember ‘r1′, user1’ //给用户授予角色
sp_droprolemember ‘r1′, user1’ //撤销角色权限
在SQL Server中,除了允许用户自定义角色外,系统还有固定的数据库角色和服务器角色。服务器角色独立于各个数据库;数据库角色和服务器角色不允许用户添加、删除、修改,由系统管理。
三、总结
为了使自主授权的执行更加灵活方便,一些DBMS引入了角色来简化授权过程。
通过按角色对用户进行分组,您可以向相似的用户授予相似的访问权限。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。