目录
Managing Roles 管理角色
在Oracle中,Roles是一种权限管理的机制,它可以被视为一组用户或其他Roles的集合。Roles可以分配给用户,从而在系统中管理访问权限。通过使用Roles,可以轻松地管理用户的访问权限和安全性,并且可以避免对每个用户进行单独的授权。Roles可以继承其他Roles的权限,并且可以包含多个权限对象(如表、序列、视图等)。这使得它更容易管理大规模的应用程序,同时提高了应用程序的安全性和可靠性。
- CONNECT,RESOURCE,DBA
- 这些预定义角色主要用于数据库管理。Oracle 建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。
- DELETE_CATALOG_ROLE,EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE
- 这些角色主要用于访问数据字典视图和包。
- EXP_FULL_DATABASE,IMP_FULL_DATABASE
- 这两个角色用于数据导入导出工具的使用。
- AQ_USER_ROLE,AQ_ADMINISTRATOR_ROLE
- 这两个角色用于 Oracle 高级查询功能。
- SNMPAGENT
- 用于 Oracle enterprise manager 和 Intelligent Agent
- RECOVERY_CATALOG_OWNER
- 用于创建拥有恢复库的用户。
- --语法格式
- create role role_name by role_password;
-
- -- 样例演示
- create role identifiled by oracle;
- -- 格式
- alter user 用户名 default role 角色名;
-
- -- 示例
- alter user test default role role1,role2;
rovoke role from test;
drop role hr_manager;
- grant create any table, create procedure to teacher;
-
-
- grant SELECT ANY TABLE to student;
-
- -- 格式
- grant 角色 to 用户名;
-
- -- 示例
- SQL> grant student to black;
- Grant succeeded.
- -- 格式
-
- select * from dba_role_privs where grantee='用户名';
-
- -- 示例
- SQL> select * from dba_role_privs where grantee='WHITE';
-
- GRANTEE GRANTED_ROLE ADM DEF
- ------------------------------ ------------------------------ --- ---
- WHITE TEACHER NO YES
- WHITE CONNECT YES YES
- WHITE RESOURCE NO YES
- -- 格式
- select * from role_sys_privs where ROLE='角色';
-
- -- 示例
-
- SQL> select * from role_sys_privs where ROLE='TEACHER';
- ROLE PRIVILEGE ADM
- ------------------------------ -------------------- ---
- TEACHER CREATE ANY TABLE NO
- TEACHER CREATE PROCEDURE NO
-
- SQL> select * from role_sys_privs where ROLE='STUDENT';
- ROLE PRIVILEGE ADM
- ------------------------------ -------------------- ---
- STUDENT SELECT ANY TABLE NO
- --为角色添加口令
- alter role 角色名 identified by 角色口令;
-
- --删除角色的口令
- alter role 角色名 not identified;
-