角色管理:
1. 角色可以认为是一组权限的集合。
你可以把一些权限赋予角色,然后把角色赋予给一个用户
2. 角色还可以赋予另一个角色。但给角色赋予角色过程中,不能形成环路
--比如,A角色赋予给B,B角色赋予给C,C角色再赋予给A的时候,就报错。
角色的好处。
1. 利于权限的分配。
--当很多个用户需要分配相同权限时,你可能给每个人进行同样的操作。
--列:有10个权限,每次来个用户,你就得给他这些权限。
这样,每添加一个用户,你就得做10此操作。
要是用角色来管理,就是每次只做一次操作。
2. 利于管理
--当给很多个用户已经分配了很多权限,但发现某个权限是不需要的。
或者说是这个权限不能分配给这些用户。
你是用角色来分配权限时,你只要把角色的权限收回就可。非常方便。
默认有的角色。
数据库创建后就已经预先建立了很多角色权限。
SQL> select role from dba_roles;
ROLE
------------------------------
CONNECT
RESOURCE
DBA
SELECT_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
RECOVERY_CATALOG_OWNER
GATHER_SYSTEM_STATISTICS
LOGSTDBY_ADMINISTRATOR
AQ_ADMINISTRATOR_ROLE
AQ_USER_ROLE
GLOBAL_AQ_USER_ROLE
SCHEDULER_ADMIN
HS_ADMIN_ROLE
AUTHENTICATEDUSER
OEM_ADVISOR
OEM_MONITOR
WM_ADMIN_ROLE
JAVAUSERPRIV
JAVAIDPRIV
JAVASYSPRIV
JAVADEBUGPRIV
EJBCLIENT
JAVA_ADMIN
JAVA_DEPLOY
CTXAPP
XDBADMIN
XDBWEBSERVICES
OLAP_DBA
OLAP_USER
MGMT_USER
HR_ROLE_CONN
HR_ROLE_RESO
35 rows selected.
SQL>
|
其中,DBA具有大部分的管理权限。
一般对数据库进行维护的时候,最好建立一个DBA权限的用户来代替sys或者system用户
因为sys和system用户的权限太大。
最好不要把sys权限分配给非管理数据库的用户。
下面创建一个用户,给个DBA权限。
SQL> create user dba_test identified by dba1234;
User created.
SQL> grant dba to dba_test;
Grant succeeded.
SQL> conn dba_test/dba1234;
Connected.
SQL> show user
USER is "DBA_TEST"
SQL> conn dba_test/dba1234 as sysdba
ERROR:
ORA-01031: insufficient privileges
SQL> show user
USER is ""
SQL>
|
可以看到,DBA权限的用户是不能以sysdba权限登录的。
一般现在分配给用户的时候分配服下权限
1. CONNECT
--这个权限是包含了一个CREATE SESSION的系统权限。
select PRIVILEGE from role_sys_privs where ROLE = 'CONNECT';
2. RESOURCE
--包含几个基本的CREATE权限。看下面的结果
select PRIVILEGE from role_sys_privs where ROLE = 'RESOURCE';
--在这里注意的是,在10G以前(到9i为止),RESOURSE包含UNLIMITED TABLESPACE权限。
3. UNLIMITED TABLESPACE
--9i或之前的版本,在RESOURCE权限里已经有这个权限,所以不必要另行分配。
在这里,1跟2是角色来分配。这样,以后就好管理了。
或者,你可以自行创建角色来分配给用户,然后去管理。
比如,要是公司内部结果分的比较细,你可以创建一个HR_ROLE的角色,
然后数据库里有HR_TS的表空间,就可以把如下的权限分配给HR_ROLE角色。
--这个权限包含了
--1. CONNECT
--2. RESOURCE
--3. UNLIMITED TABLESPACE
这样,以后对HR用户分配角色时只分配一个HR_ROLE,然后对这一组人更改权限,就更改HR_ROLE角色。
创建角色使用 CREATE ROLE
[IDENTIFIED BY
]
Technorati : ORACLE 角色 role
Del.icio.us : ORACLE 角色 role
Zooomr : ORACLE 角色 role
Flickr : ORACLE 角色 role