角色
为了简化对权限的管理,oracle事先把一系列的权限集中在一起,打包赋给某用户,分为预定义角色(一般指系统默认
的)和自定义角色(用户自己定义的)。
1 预定义角色:oracle提供的一些角色,常用的预定义角色connect、resource、dba
(1) connect角色:具有一般应用开发人员需要的大部分权限,当建立一个用户后,多数情况下,只要赋给用户connect
和resource角色就够了:alter session, create cluster, create database link, create session, create table,
create view, create sequence。
(2) resource角色:具有应用开发人员所需的其他权限,比如建立存储过程,触发器等,这里需要注意的是resource角
色隐含了unlimited tablespace(无限制表空间)系统权限 :create cluster, create indextype, create table,
create sequence, create type, create procedure, create trigger.
(3)dba具有所有系统权限,及with admin option选项,默认的dba用户为sys和system他们可以将任何系统权限授予其
他用户,但是要注意的是dba角色不具备sysdba和sysoper的特权(启动和关闭数据库).
自定义角色
一般是dba用户来建立,如果用别的用户建立,需要该用户有create role系统权限,在建立角色时可以指定验证方式
(1)建立角色(不验证)
如果角色是公用的角色,可以采用不验证的方式建立角色。
create role 角色名 not identitied;
(2)建立角色(验证)
采用这样的方式,角色名、口令存放在数据库中,当激活该角色时必须提供口令,在建立角色时,需要为其提供
create role 角色名 identified by 密码;
给角色授予权限和给用户授予权限没有太多的区别,但是系统权限unlimited tablespace 和对象权限with grant
option选项是不能授予角色的。
例:create role myrole1 not identified;
grant create session to myrole1 with admin option;
conn scott/m123;
grant select on 表名 to myrole1;
(3) 删除角色
具有dba权限的用户,删除角色后,角色立刻失效,具有这种角色的用户相关的权限不再起作用
drop role 角色名
(4)查看角色
显示所有角色:select * from dba_roles;
还可以查看某个角色的系统权限和对象权限。