1.查询 Oracle 所有的角色
select * from dba_roles;
2.介绍常用的 预定角色 connect ,resource,dba
1.connect 具有一般开发人员的大部分权限,建立一个用户多半情况下,赋予 connect 和 resource 角色 就够了。
connect角色 所拥有的权限有 :
alter session 修改会话
create cluster 创建簇
create database link
create session
create table
create view
create sequence
2.resources 角色用开发人员选用的其他权限,比如建立存储过程,触发器,resource 角色隐含了 unlimited tablespace 系统权限 无限表空间权限。
create cluster
create indextype
create table
create type
create proecdure
create trigger
3.dba角色具有 所有的系统权限 以及 with admin option选项,默认的dba用户为 sys和system 他们可以将任何系统权限授予其他用户,但是 dba角色不具备 sysdba和sysoper的特权(启动和关闭数据库)
3.举例:授予 connect resource dba 系统角色
grant connect to luob 【with admin option】//授予 连接权限 是否遗传下去
grant resource,dba to luob//授予 资源 和 dba 角色
4.收回角色
revoke connect,resource,dba from luob//回收 连接 资源 dba 角色5.自定义 角色 --一般是dba来建立,别的用户需要 create role 的系统权限(创建角色时候可以指定验证方式(不验证,数据库验证等)
create role 角色名 not identified;//不需要验证的
alter role myrole identified by m123;//将上面定义的角色 修改成需要数据库验证的 角色
create role 角色名 identified by r111;//定义需要验证的 角色 myrole
6.给 自定义角色 授予 系统权限
grant create session to 角色名 【with admin option】//给连接权限给 角色
7.给自定 角色 授予 对象权限
grant select on scott.emp from 角色名 --都是 system 用户登录
grant update on scott.emp from 角色名 -- 如果用 scott 就没有方案名
grant delete on scott.emp from 角色名
grant all on emp from 角色8.将自定义角色 授予 用户
grant 角色名 to 用户名 【with admin option】
9.删除某个用户的角色
revoke 角色名 from 用户名
10.删除 自定义 角色
drop role 角色名//如果角色被删除了, 拥有这个角色的人都没有角色对应的权限了
11.查看当前用户拥有的 角色
select * from user_role_privs