oracle
中的角色
一、何为角色?
我在前面的篇幅中说明权限和用户。慢慢的在使用中你会发现一个问题:如果有一组人,
他们的所需的权限是一样的,当对他们的权限进行管理的时候会很不方便。因为你要对这组中的每个用户的权限都进行管理。
有一个很好的解决办法就
是:角色。角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。那么上述问题就很好处理了,只要第一次将角色赋给这一组用
户,接下来就只要针对角色进行管理就可以了。
以上是角色的一个典型用途。其实,只要明白:角色就是一组权限的集合。下面分两个部门来对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
用于创建拥有恢复库的用户。关于恢复库的信息,参考oracle
文
档《Oracle9i User-Managed Backup and Recovery Guide》
7.HS_ADMIN_ROLE
A DBA using Oracle
's
heterogeneous services feature needs this role to access appropriate
tables in the data dictionary.
二、管理角色
1.建一个角色
sql>create role role1;
2.
授权给角色
sql>grant create any table,create procedure to role1;
3.授
予角色给用户
sql>grant role1 to user1;
4.查看角色所包含的权限
sql>select *
from role_sys_privs;
5.创建带有口令以角色(在生效带有口令的角色时必须提供口令)
sql>create
role role1 identified by pa