Oracle的Roles管理

来源:互联网 发布:宁波房价 知乎 编辑:程序博客网 时间:2024/04/29 09:50

摘自:

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所设定口令将无效。
原创粉丝点击