天天看点

Oracle之角色

角色

就是相关权限的命令集合,使用角色的主要目的就是为了简化权限管理。

(一)预定义角色

即Oracle 所提供的角色,每种角色都执行一些特定的管理任务,下面是介绍常用的预定义角色connect,resource,dba

1、connect角色

具有一般应用开发人员需要的大部分权限,当建立了一个用户后,多数情况下,只要给用户授予connect和resource角色就够了,那么connect角色具有哪些系统权限?

alter  session(修改会话)

create  cluster(创建簇)

create  database  link (数据库连接)

create   session

create  table 

create  view(创建视图)

create sequence  (创建序列)

2、resource角色具有应用开发人员需要的其它权限,比如建立存储过程,触发器等。这里需要的是resource角色隐含了unlimited  tablespace 系统权限。

resource角色包含以下系统权限:

create  cluster 

create  indextype

create sequence

create  type 

create procedure

create   trigger

3、DBA角色

dba角色具有所有的系统权限,及with admin option 选项,默认的dba用户为sys和system 他们可以将任何系统权限授予其它用户。但是注意的是dba用户不具备sysdba和sysoper 的特权(启动和关闭数据库)

(二)自定义角色

根据自己需要定义,一般dba来创建,如果用别的用户建立,则需要create  role的系统权限,在建立角色时,可以指定验证方式(不验证,数据库验证等)

1、建立角色(不验证)

如果角色是公用的,则可以采用不验证的方式建立角色。

create    role  角色名  not  identifed;

2、建立角色(数据库验证)

采用此方式,角色名,口令存放在数据库中。当激活该角色时,必须提供口令。在建立这种角色时,需要为其提供口令

create   role  角色   identified   by  密码;

--------------------------------------------------------------------------------------

角色的授权

当建立角色时,角色没有任何权限,为了使得角色完成特定任务,必须为其授予相应的系统权限和对象权限。

1、给角色授权

给角色授予权限和用户授权没有太多区别,但是注意系统权限的unlimited  tablespace  和

对象权限with  grant  option、选项不能授予角色的。

conn system/密码

grant  create session  to   角色名   with admin option

conn scott/tiger@orcl

grant  select  on  scott.emp   to   角色名

grant  insert ,update,delete  on  scott.emp  to  角色;

授权成功

2、分配角色给用户

一般由dba来完成,若以其他身份分配角色,则要求具有grant  any  role 的系统权限

conn  system/密码

grant  角色名  to blake with  admin option

blake可以将角色分配给其他用户。

3、删除角色

使用drop  role  ,一般是dba来执行,若其他用户则要求该用户具有drop  any  role 系统权限

conn  system/密码 

drop  role   角色名

(三)显示角色信息

①显示所有角色

select  * from  dba_roles;

②角色具有的系统权限

select  privilege ,admin_option   from  role_sys_privs  where  role ='角色';

③显示角色具有的对象权限

通过查询数据字典dba_tab_prvis可以查看角色具有的对象权限或是列的权限。

④显示用户具有的角色,及默认角色

当以用户的身份连接数据库时,oracle会自动的激活默认的角色,通过查询数据字典视图dba_role_privs可以显示某个用户具有的所有角色及当前默认角色

slect  grant_role,default_role from  dba_role_privs  where  grantee="用户名";

图1