Oracle的Roles管理

本文介绍了Oracle数据库中的角色管理方法,包括创建、修改、删除角色及如何激活角色等操作,并提供了具体的SQL示例。此外还讲解了预定义角色的使用以及如何通过数据字典查看角色信息。

摘自:

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 所设定口令将无效。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值