- 角色: 是具有名称的一组相关权限的组合,即将不同权限组合在一起就形成了角色。可以使用角色为用户授权,同样也可以从用户中回收角色。
- 一个角色集合了多种权限,所以为用户授予某个角色时,相当于为用户授予多种权限。
- 使用角色的特点和优点
- 1> 并不是一次一个地将权限直接授予一个用户,而是先创建角色,想该角色授予一些权限,然后在将该角色授予多个用户。
- 2> 在增加或者删除一个角色的权限时,被授予该角色的所有用户都会自动获得或失去相应权限。
- 3> 可以将多个角色授予一个用户。
- 4> 可以为角色摄者口令。
- Oracle DB系统提供的预定义角色。
- connect 具有最终用户的典型权限和最基本的权限,如:alter|create session;create cluster/database link/sequence/view/synonym
- resource 主要是授予开发人员的,包括以下系统权限: create cluster|procedure|sequence|table|trigger|type等。
- dba 拥有系统所有的系统权限。
- exp_full_database 具有数据库逻辑备份时数据数据导出权限。
- imp_full_database 具有数据库逻辑备份时数据数据导入权限。
- delete_catalog_role 具有删除和重建数据字典所需的权限
- execute_catalog_role 具有查询数据字典的权限。
- select_catalog_role 具有从数据字典中执行部分存储过程和函数的权限。
- 创建角色 create role (用户需create role_name 权限)
- create role role_name
- [not idntified|identified by password]
- role_name: 创建的角色名。
- not identified: 表示该角色不需要口令就可以被启用或修改。
- identified by password: 表示必须通过指定口令才能启用或修改该角色,默认没有口令。
- 为角色授予权限(新创建的角色是没有任何权限,可以使用grant授予)
- grant select, update,insert,delete on emp to role_name;
- 为用户授予角色,grant
- grant role_name, create session to user_name;
- 实例:
- 创建角色: create role role_name identified by password;
- 为角色授予系统权限: grant create session, create table to role_name with admin option;
- 为角色授予对象权限: grant select, update,insert,delete on scott.emp to role_name;
- 创建用户: create user user_name identified by adminPassword;
- 为用户授予角色: grant role_name to user_name;
- 修改和删除角色
- 1> 查看角色信息
- dba_roles 记录数据库中所有角色。
- dba_role_privs 记录所有已经被授予用户和角色的角色。
- user_roles 包含已经授予当前用户的角色信息。
- role_role_privs 包含角色授予角色信息。
- role_sys_privs 包含为角色授予的系统权限信息。
- role_tab_privs 包含为角色授予的对象权限信息.
- session_roles 包含当前会话所包含的角色信息。
- 2> 修改角色(alter role)
- a。修改角色口令:
- alter role role_name[not identified|identified by password]
- alter role role_name not identified;
- alter role role_name identified by password;
- 3> 删除角色 使用drop role role_name
- 角色被删除后,对于使用该角色的用户来说,相应的权限同时被删除。
-- 转载自: http://wkf41068.iteye.com/blog/1929023