开启掘金成长之旅!这是我参与「掘金日新计划 · 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
用户为sys
和system
他们可以将任何系统权限授予其它用户。但是要注意的是dba
角色不具备sysdba
和sysoper
的特权(启动和关闭数据库)
10.1.3.2 自定义角色
顾名思义:就是自己定义的角色,根据自己的需要来定义,一般是dba
来建立,如果用的别的用户来建立,则需要具有create role
的系统权限,在建立角色时可以指定验证方式(不验证,数据库验证等)。
(一)建立角色(不验证)
如果角色是公用的角色,可以采用不验证的方式建立角色
create role 角色名 not identified;
(二)建立角色(数据库验证)
采用这样的方式时,角色名、口令存放在数据库中。当激活该角色时,必须提供口令,在建立这种角色时,需要为其提供口令
create role 角色名 identified by shunping