Oracle11g权限--角色

角色: 是具有名称的一组相关权限的组合,即将不同权限组合在一起就形成了角色。可以使用角色为用户授权,同样也可以从用户中回收角色。
      一个角色集合了多种权限,所以为用户授予某个角色时,相当于为用户授予多种权限。

使用角色的特点和优点
	1> 并不是一次一个地将权限直接授予一个用户,而是先创建角色,想该角色授予一些权限,然后在将该角色授予多个用户。
	2> 在增加或者删除一个角色的权限时,被授予该角色的所有用户都会自动获得或失去相应权限。
	3> 可以将多个角色授予一个用户。
	4> 可以为角色摄者口令。

Oracle DB系统提供的预定义角色。

connect  具有最终用户的典型权限和最基本的权限,如:alter|create session;create cluster/database link/sequence/view/synonym

resourcr 主要是授予开发人员的,包括以下系统权限: 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
 角色被删除后,对于使用该角色的用户来说,相应的权限同时被删除。

猜你喜欢

转载自wkf41068.iteye.com/blog/1929023