摘自:
http://blog.163.com/z_rx/blog/static/2763637620073305351391/
roles处在users和Privileges之间,roles就是命名的权限的集合,Oracle引入roles目的是简化对用户权限的管理,权限有可能是系统的权限,也可能是对象的权限,或者是两者的组合,使用roles的好处:简化权限的管理;动态权限管理;选择性的启用或关闭roles权限集合;roles可以通过操作系统来建立;应用roles可以改善系统性能。1、Create and modify roles(创建和修改角色)
------------------------------------------------
--create user testuser1 identified by kxf_001 ;
--grant create session to testusers ;
--创建roles
-- create role testrole1 ;
--为roles赋予权限
--grant select on authors to testroles1 ;
--为用户分配角色
--grant testrole1 to testuser1;
--grant testrole1 to testuser1 with admin option; --允许将此权限传播给第三者
-- alter user testuser1 default role testroles1 ; --赋予用户的roles为默认,当用户登录后可自动激活
-------------------------------------------------
-- revoke select on authors from testuser1 ; 从角色中回收权限
-- create role clerk ;
-- create role hr_clerk identified by bonus ; --验证方式
-- create role hr_manager identified by externally ; --验证方式/外部验证/借助操作系统来验证
--alter role testrole1 identified by kxf_001; --修改roles用口令来验证
--alter role clerk identified by order ;
--alter role hr_clerk identified by externally ;
--alter role hr_manager not identified ; --修改roles取消口令验证
2、Control availability fo roles(角色的可用性,动态的管理用户的权限,必须被激活后才可以使用)
-- set role testrole1 ; --激活角色才能让角色生效
--set role testrole1 identified by kxf_001 ; --激活时必须加入相应的验证口令
3、Remove roles(删除角色)
-- drop role testrole1 ;
--Enabled and Disabled Roles
--缺省的roles在用户登录时自动Enabled
--激活一个角色
--set role roles1[identified by xxx]... all
--关闭所有的角色
--set role none ;
--取消赋予用户的角色
--revoke clerk from scott;
--删除一个roles
-- drop role testroles1 ;
4、Use predefined roles(使用系统预定义的角色)
预定义的roles
-- connect resource DBA exp_full_database imp_full_database delete_catalog_role execute_catalog_role select_catalgo_role
--缺省的roles
--缺省的roles在用户登录时会自动激活,不管有没有roles的验证口令,如果是admin选项,必须激活;
5、Display role information from the data dictionary(数据字典中查询角色)
--select * from dba_roles ; (系统中有哪些角色使用dba_roles)
--select * from role_sys_privs ; (那些系统权限授予给了相关roles/或每个角色都有什么权限)
--select * from role_tab_privs ;(查询对象的权限给了那些角色或每个角色都有什么权限)
Role View
DBA_ROLES dba_role_privs role_role_privs dba_sys_privs role_sys_privs role_tab_privs session_roles
注意事项:roles不能递归传递,不能直接或间接将roles传回自己;default选项决定用户在登录时可使所赋予的roles自动生效,通过 identified 所设定口令将无效。 ▋
本文介绍了Oracle数据库中的角色管理方法,包括创建、修改、删除角色及如何激活角色等操作,并提供了具体的SQL示例。此外还讲解了预定义角色的使用以及如何通过数据字典查看角色信息。
1221

被折叠的 条评论
为什么被折叠?



