角色: 是具有名称的一组相关权限的组合,即将不同权限组合在一起就形成了角色。可以使用角色为用户授权,同样也可以从用户中回收角色。 一个角色集合了多种权限,所以为用户授予某个角色时,相当于为用户授予多种权限。
使用角色的特点和优点 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 角色被删除后,对于使用该角色的用户来说,相应的权限同时被删除。