韩顺平.玩转oracle - 角色

  • 相关权限的命令集合
    使用角色的主要目的就是为了简化权限的管理

预定义角色

  • oracle所提供的角色,每种角色都用于执行一些特定的管理任务

connect角色
具有一般应用开发人员需要的大部分权限
具有的系统权限
alter session
create cluster
create database link
create session
create table
create view
create sequence

resource角色
具有应用开发人员所需要的其它权限
比如建立存储过程、触发器等
隐含了unlimited tablespace (无限制表空间)系统权限
包括以下系统权限:
create cluster
create indextype
create table
create sequence
create type
create procedure
create trigger

dba角色
具有所有的系统权限及with admin option选项
不具备sysdba和sysoper的特权(启动和关闭数据库)
默认的dba用户为sys和system

自定义角色

  • 一般是dba建立,其他用户需具有create role系统权限
    在建立角色时可以指定验证方式(不验证,数据库验证等)

建立角色(不验证)
如果角色是公用的角色,可以采用不验证的方式建立角色
create role 角色名 not identified;

建立角色(数据库验证)
采用这种方式,角色名、口令存放在数据库中
当激活该角色时,必须提供口令
在建立该角色时,需要为其提供口令
create role 角色名 identified by 口令;

角色授权

  • 当建立角色时,角色没有任何权限
    为了使得角色完成特定任务,必须为其授予相应的系统、对象权限

给角色授权
系统权限的unlimited tablespace和对象权限的with grant option不能授予角色

conn system/manager;
grant create session to 角色名 with admin option;--可传递权限
conn scott/m123;--也可用system进行授权
grant select on emp to 角色名;
grant insert,update,delete on emp to 角色名;

分配角色给某个用户
一般由dba完成分配,其他用户需具有grant any role的系统权限

conn system/manager;
grant 角色名 to 用户 with admin option;--可以将此角色分配给别的用户

删除角色
一般由dba执行,其他用户需具有drop any role的系统权限

conn system/manager;
drop role 角色名;

显示角色信息

  • 显示所有角色
    select * from dba_roles;
  • 显示角色具有的系统权限
select privilege,admin_option
from role_sys_privs
where role = '角色名';
  • 显示角色具有的对象权限
    通过查询数据字典视图dba_tab_privs可以查看角色具有的对象权限/列的权限
  • 显示用户具有的角色及默认角色
select granted_role,default_role
from dba_role_privs
where grantee = '用户名';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值