1. 首页 > Oracle教程 > 正文

Oracle教程FG160-预定义角色

Part03-生产环境项目实施方案

3.1 预定义角色管理操作步骤

以下是预定义角色管理的基本操作步骤:

— 查看预定义角色
SELECT role
FROM dba_roles
WHERE role IN (‘CONNECT’, ‘RESOURCE’, ‘DBA’, ‘SELECT_CATALOG_ROLE’, ‘EXECUTE_CATALOG_ROLE’, ‘DELETE_CATALOG_ROLE’);– 查看预定义角色的权限
SELECT grantee, privilege
FROM dba_sys_privs
WHERE grantee = ‘CONNECT’
ORDER BY privilege;SELECT grantee, privilege
FROM dba_sys_privs
WHERE grantee = ‘RESOURCE’
ORDER BY privilege;– 授予预定义角色给用户
GRANT CONNECT, RESOURCE TO app_user;GRANT SELECT_CATALOG_ROLE TO report_user;GRANT DBA TO admin_user;– 从用户回收预定义角色
REVOKE DBA FROM admin_user;– 查看用户的预定义角色
SELECT grantee, granted_role
FROM dba_role_privs
WHERE grantee = ‘FGAPP_USER’
ORDER BY granted_role;
— 常见预定义角色及其权限
— CONNECT角色:基本的数据库连接权限
— 包含的权限:CREATE SESSION

— RESOURCE角色:应用开发所需的权限
— 包含的权限:CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE

— DBA角色:数据库管理员权限
— 包含的权限:几乎所有系统权限

— SELECT_CATALOG_ROLE:查询数据字典的权限
— 包含的权限:SELECT权限访问数据字典视图

— EXECUTE_CATALOG_ROLE:执行数据字典包的权限
— 包含的权限:EXECUTE权限访问数据字典包

— DELETE_CATALOG_ROLE:删除数据字典表的权限
— 包含的权限:DELETE权限访问数据字典表

— AUDIT_ADMIN:审计管理权限
— 包含的权限:审计相关的系统权限

— AUDIT_VIEWER:审计查看权限
— 包含的权限:查看审计数据的权限

3.2 预定义角色管理最佳实践

— 1. 为不同类型的用户分配不同的预定义角色
— 普通用户
GRANT CONNECT TO app_user;– 应用开发人员
GRANT CONNECT, RESOURCE TO dev_user;– 报表用户
GRANT CONNECT, SELECT_CATALOG_ROLE TO report_user;– 数据库管理员
GRANT CONNECT, DBA TO admin_user;– 2. 结合自定义角色使用
— 创建自定义角色
CREATE ROLE app_developer;– 授予预定义角色
GRANT CONNECT, RESOURCE TO app_developer;– 授予额外的对象权限
GRANT SELECT, INSERT, UPDATE, DELETE ON hr.employees TO app_developer;– 将角色授予用户
GRANT app_developer TO dev_user;– 3. 查看预定义角色的详细权限
SELECT grantee, privilege
FROM dba_sys_privs
WHERE grantee = ‘DBA’
ORDER BY privilege;

Part04-生产案例与实战讲解

4.1 案例1:为应用用户分配预定义角色

场景:为不同类型的用户分配合适的预定义角色,满足其业务需求。

— 1. 创建不同类型的用户
SQL> CREATE USER app_user IDENTIFIED BY App123
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;SQL> CREATE USER dev_user IDENTIFIED BY Dev123
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;SQL> CREATE USER report_user IDENTIFIED BY Report123
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;SQL> CREATE USER admin_user IDENTIFIED BY Admin123
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;– 2. 为用户分配预定义角色
SQL> GRANT CONNECT TO app_user;SQL> GRANT CONNECT, RESOURCE TO dev_user;SQL> GRANT CONNECT, SELECT_CATALOG_ROLE TO report_user;SQL> GRANT CONNECT, DBA TO admin_user;– 3. 验证角色分配
SQL> SELECT grantee, granted_role
FROM dba_role_privs
WHERE grantee IN (‘FGAPP_USER’, ‘DEV_USER’, ‘REPORT_USER’, ‘ADMIN_USER’)
ORDER BY grantee, granted_role;GRANTEE GRANTED_ROLE
———— ————
ADMIN_USER CONNECT
ADMIN_USER DBA
FGAPP_USER CONNECT
DEV_USER CONNECT
DEV_USER RESOURCE
REPORT_USER CONNECT
REPORT_USER SELECT_CATALOG_ROLE

4.2 案例2:查看预定义角色的权限

场景:查看预定义角色的详细权限,了解其包含的具体权限。

— 1. 查看CONNECT角色的权限
SQL> SELECT privilege
FROM dba_sys_privs
WHERE grantee = ‘CONNECT’
ORDER BY privilege;PRIVILEGE
—————————————-
CREATE SESSION

— 2. 查看RESOURCE角色的权限
SQL> SELECT privilege
FROM dba_sys_privs
WHERE grantee = ‘RESOURCE’
ORDER BY privilege;PRIVILEGE
—————————————-
CREATE CLUSTER
CREATE INDEXTYPE
CREATE OPERATOR
CREATE PROCEDURE
CREATE SEQUENCE
CREATE TABLE
CREATE TRIGGER
CREATE TYPE

— 3. 查看SELECT_CATALOG_ROLE的权限
SQL> SELECT privilege, owner, table_name
FROM dba_tab_privs
WHERE grantee = ‘SELECT_CATALOG_ROLE’
ORDER BY owner, table_name, privilege;– 输出结果会包含大量的数据字典视图的SELECT权限

4.3 案例3:结合预定义角色和自定义角色

场景:结合使用预定义角色和自定义角色,满足特定业务需求。

— 1. 创建自定义角色
SQL> CREATE ROLE hr_fgapp_role;– 2. 授予预定义角色
SQL> GRANT CONNECT, RESOURCE TO hr_fgapp_role;– 3. 授予额外的对象权限
SQL> GRANT SELECT, INSERT, UPDATE, DELETE ON hr.employees TO hr_fgapp_role;SQL> GRANT SELECT, INSERT, UPDATE, DELETE ON hr.departments TO hr_fgapp_role;SQL> GRANT EXECUTE ON hr.get_employee_info TO hr_fgapp_role;– 4. 创建用户并分配角色
SQL> CREATE USER hr_user IDENTIFIED BY Hr123;SQL> GRANT hr_fgapp_role TO hr_user;– 5. 验证角色分配
SQL> SELECT grantee, granted_role
FROM dba_role_privs
WHERE grantee = ‘HR_USER’;GRANTEE GRANTED_ROLE
———— ————
HR_USER HR_APP_ROLE

— 6. 验证角色的权限
SQL> SELECT privilege
FROM dba_sys_privs
WHERE grantee = ‘HR_APP_ROLE’
ORDER BY privilege;PRIVILEGE
—————————————-
CREATE CLUSTER
CREATE INDEXTYPE
CREATE OPERATOR
CREATE PROCEDURE
CREATE SEQUENCE
CREATE SESSION
CREATE TABLE
CREATE TRIGGER
CREATE TYPE

Part05-风哥经验总结与分享

5.1 预定义角色管理最佳实践

风哥提示:

  • 合理使用预定义角色,避免过度授权
  • 根据用户的实际需求选择合适的预定义角色
  • 结合自定义角色使用,满足特定业务需求
  • 定期审查预定义角色的使用情况
  • 限制DBA等高级预定义角色的使用
  • 使用预定义角色作为基础,再根据需要添加或移除特定权限
  • 了解每个预定义角色包含的具体权限,避免权限过度
  • 遵循最小权限原则,只授予用户必要的预定义角色

学习交流加群风哥QQ113257174

生产环境建议:请根据实际情况调整配置和参数,确保生产环境的安全性和稳定性。

风哥提示:更多学习教程公众号风哥教程itpux_com

更多视频教程www.fgedu.net.cn

学习交流加群风哥微信: itpux-com

from oracle:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息