Oracle 12c中如何验证用户具备担任恢复目录所有者的必要权限
Oracle 12c 环境下TRADES库恢复目录所有者权限的验证方法
需验证的权限基线
RMAN恢复目录所有者的权限要求为固定标准,不存在自定义扩展权限的场景,校验范围需覆盖三类核心要求:
- 基础数据库连接权限,无此权限用户无法建立与TRADES库的正常会话
- 系统内置的
RECOVERY_CATALOG_OWNER角色,该角色包含创建、维护恢复目录元数据表、视图的全部必要系统权限 - 目标存储表空间的足够空间配额,该部分权限不包含在内置角色的授权范围内,需要单独配置
具体验证操作步骤
- 验证基础连接权限
以具备DBA权限的用户登录TRADES库,执行如下SQL查询:
查询返回任意结果,即代表该权限已配置完成。SELECT 1 FROM DBA_SYS_PRIVS WHERE GRANTEE = '待验证用户的大写名称' AND PRIVILEGE = 'CREATE SESSION'; - 验证
RECOVERY_CATALOG_OWNER角色授予状态
继续在DBA会话下执行查询:
查到角色后,需切换到待验证用户的会话下执行SELECT 1 FROM DBA_ROLE_PRIVS WHERE GRANTEE = '待验证用户的大写名称' AND GRANTED_ROLE = 'RECOVERY_CATALOG_OWNER';SELECT * FROM SESSION_ROLES;,确认RECOVERY_CATALOG_OWNER是用户登录后默认激活的角色——如果角色未设为默认激活,RMAN连接时会因角色权限未启用触发权限错误。 - 验证表空间配额
执行如下SQL查询用户的表空间配额配置:
确认用户在存储恢复目录对象的目标表空间上有无限配额,或配额容量不低于500MB,满足恢复目录初期的存储需求即可。SELECT TABLESPACE_NAME, BYTES/1024/1024 AS USED_SPACE_MB, CASE WHEN MAX_BYTES = -1 THEN 'UNLIMITED' ELSE TO_CHAR(MAX_BYTES/1024/1024)||'MB' END AS QUOTA_LIMIT FROM DBA_TS_QUOTAS WHERE USERNAME = '待验证用户的大写名称'; - 最终连通性校验
所有静态权限校验完成后,可直接通过RMAN工具发起catalog连接,无权限类报错即为配置合格:rman catalog 待验证用户名/用户密码@TRADES库对应服务名
注意:Oracle 12c 多租户架构下,若TRADES为可插拔数据库(PDB),所有权限校验、连通性测试都需在对应PDB的会话上下文内执行,请勿在CDB根容器下查询PDB本地用户的权限信息,否则会得到错误的校验结果。
内容的提问来源于stack exchange,提问作者AAYUSH MOHTA
相关产品推荐
相关产品推荐

