Oracle管理权限和角色-预定义角色-自定义角色

90 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第29天,点击查看活动详情

10 数据库管理员

10.1 管理权限和角色

10.1.3 管理权限和角色 ---角色

·介绍

角色:就是相关权限的命令集合,使用角色的主要目的是为了简化权限的管理,假定有用户a,b,c为了让他们都拥有权限

(1)连接数据库

(2)在scott.emp表上select,insert,update

如果采用直接授权操作,则需要进行12次授权

·介绍

我们如果采用角色就可以简化:

首先将create session,select on scott.emp,insert on scott.emp,update on scott.emp授予角色,然后将该角色授予a,b,c用户,这样就可以三次授权搞定。

角色分为预定义和自定义角色两类:

预定义角色大概有25种

10.1.3.1 预定义角色

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

(一)connect角色

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

alter session

create cluster

create database link

create session

create table

create view

create sequence

(二)resource角色

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

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

create cluster

create indextype

create table

create sequence

create type

create procedure

create trigger

(三)dba角色

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

10.1.3.2 自定义角色

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

(一)建立角色(不验证)

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

create role 角色名 not identified;

(二)建立角色(数据库验证)

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

create role 角色名 identified by shunping