角色是对用户的一种分类管理方法,类似于在业务系统中经常提到的“建岗授权”一样,不同的权限的用户可以分为不同的角色。例如DBA角色是ORACLE创建的时候自动生成的角色,它包含大多数数据库的操作权限,因此只有系统管理员才能够被授予DBA角色。
为了方便管理用户权限,Oracle提供了一系列的预定义的系统角色。也就是说,如果没有特殊的需要,DBA可以不用自定义角色,而是使用系统提供的角色就足够了,从这一点与应用系统的角色相比较,Oracle的角色粒度要更小一点。
常用的Oracle预定义的角色如下:
CONNECT
授予最终用户的基本角色,主要包含修改会话(ALTER SESSION)、建立聚簇(CREATE CLUSTER)、建立数据库链接(CREATE DATABASE LINK)、建立序列(CREATE SEQUENCE)、建立会话(CREATE SESSION)、建立同义词(CREATE SYNONYM)、建立视图(CREATE VIEW)等权限。
RESOURCE
授予开发人员的基本角色,包括建立聚簇(CREATE CLUSTER)、
创建过程(CREATE PROCEDURE)、创建序列(CREATE SEQUENCE)、
创建表(CREATE TABLE)、创建触发器(CREATE TRIGGER)、创建类型(CREATE TYPE)等权限。
DBA
拥有所有的系统级的管理权限
IMP_FULL_DATABASE和EXP_FULL_DATABASE
导入导出数据库所需要的角色,主要包括备份表(BACKUP ANY TABLE)、执行过程(EXECUTE ANY PROCEDURE)、查询表(SELECT ANY TABLE)等权限。
DELETE_CATALOG_ROLE
删除sys.aud$记录的权限,sys.aud$表中记录着审计之后的记录。
SELECT_CATALOG_ROLE
具有从数据字典查询的权限
EXECUTE_CATALOG_ROLE
具有从数据字典中执行部分过程和函数的权限。
--摘自Oracle学习笔记