Oracle 角色管理

简介

角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。系统预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下介简单的介绍一下这些预定角色。

角色所包含的权限可以用以下语句查询:

sql>select * from role_sys_privs where role='角色名'; 

1、
CONNECT, RESOURCE, DBA:

这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。

2、
DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE:

这些角色主要用于访问数据字典视图和包。

3、
EXP_FULL_DATABASE, IMP_FULL_DATABASE:

这两个角色用于数据导入导出工具的使用。

4、
AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE:AQ:Advanced Query。

这两个角色用于oracle高级查询功能。

5、
SNMPAGENT:

用于oracle enterprise manager和Intelligent Agent

6、
RECOVERY_CATALOG_OWNER:

用于创建拥有恢复库的用户。

管理角色

1、建一个角色

sql>create role role1; 
授权给角色
sql>grant create any table,create procedure to role1; 

2、授予角色给用户

sql>grant role1 to user1; 
查看角色所包含的权限
sql>select * from role_sys_privs; 

3、创建带有口令以角色(在生效带有口令的角色时必须提供口令)

sql>create role role1 identified by password1;
修改角色:是否需要口令 
sql>alter role role1 not identified;
sql>alter role role1 identified by password1; 

4、设置当前用户要生效的角色

(注:角色的生效是一个什么概念呢?假设用户a有b1,b2,b3三个角色,那么如果b1未生效,则b1所包含的权限对于a来讲是不拥有的,只有角色生效了,角色内的权限才作用于用户,最大可生效角色数由参数MAX_ENABLED_ROLES设定;在用户登录后,oracle将所有直接赋给用户的权限和用户默认角色中的权限赋给用户。)

sql>set role role1; //使role1生效
sql>set role role,role2; //使role1,role2生效
sql>set role role1 identified by password1; //使用带有口令的role1生效
sql>set role all; //使用该用户的所有角色生效
sql>set role none; //设置所有角色失效
sql>set role all except role1; //除role1外的该用户的所有其它角色生效。
sql>select * from SESSION_ROLES; //查看当前用户的生效的角色。

5、修改指定用户,设置其默认角色

sql>alter user user1 default role role1;
sql>alter user user1 default role all except role1; 

6、删除角色

sql>drop role role1; 

角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。
说明:

1)无法使用WITH GRANT OPTION为角色授予对象权限

2)可以使用WITH ADMIN OPTION 为角色授予系统权限,取消时不是级联

相关推荐
Elastic 中国社区官方博客30 分钟前
使用 Elasticsearch 导航检索增强生成图表
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
小金的学习笔记34 分钟前
RedisTemplate和Redisson的使用和区别
数据库·redis·缓存
新知图书1 小时前
MySQL用户授权、收回权限与查看权限
数据库·mysql·安全
文城5211 小时前
Mysql存储过程(学习自用)
数据库·学习·mysql
沉默的煎蛋1 小时前
MyBatis 注解开发详解
java·数据库·mysql·算法·mybatis
呼啦啦啦啦啦啦啦啦1 小时前
【Redis】事务
数据库·redis·缓存
HaoHao_0101 小时前
AWS Serverless Application Repository
服务器·数据库·云计算·aws·云服务器
C语言扫地僧1 小时前
MySQL 事务及MVCC机制详解
数据库·mysql
小镇cxy1 小时前
MySQL事物,MVCC机制
数据库·mysql
书生-w2 小时前
Redis Windows 解压版安装
数据库·windows·redis