环境:
DB:Oracle 19C OS:Redhat 7.6
问题说明:
将Oracle 11.2.0.4.0数据迁移到Oracle 19C时, 19C库在手动创建并授权用户时,提示没有DELETE_CATALOG_ROLE角色。
实际上在12c版本已经弃用DELETE_CATALOG_ROLE角色。
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/upgrd/changes-oracle-database-earlier-rel.html#GUID-9F6850D1-9783-4689-A85D-ECF0525FC255 Deprecated Oracle Database Roles The following Oracle Database roles are deprecated in Oracle Database 12c:
DELETE_CATALOG_ROLE Deprecated The DELETE_CATALOG_ROLE database role is deprecated in Oracle Database 12c.
查看19c角色,确实没有DELETE_CATALOG_ROLE角色。
SYS@oradb>select role from dba_roles where role like '%CATALOG%'; ROLE -------------------------------------------------------------------------------- SELECT_CATALOG_ROLE EXECUTE_CATALOG_ROLE RECOVERY_CATALOG_OWNER RECOVERY_CATALOG_OWNER_VPD RECOVERY_CATALOG_USER GDS_CATALOG_SELECT 6 rows selected. Elapsed: 00:00:00.00
对比查看11204角色,是有DELETE_CATALOG_ROLE角色的。
sys@cjc>select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE11.2.0.4.0Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production sys@cjc>select role from dba_roles where role like '%CATALOG%'; ROLE ------------------------------ SELECT_CATALOG_ROLE EXECUTE_CATALOG_ROLE DELETE_CATALOG_ROLE RECOVERY_CATALOG_OWNER
查看DELETE_CATALOG_ROLE角色包含的权限
sys@cjc>select * from dba_tab_privs where grantee='DELETE_CATALOG_ROLE'; GRANTEE OWNER TABLE_NAME GRANTOR ------------------------------ ------------------------------ ------------------------------ ------------------------------ PRIVILEGE GRA HIE ---------------------------------------- --- --- DELETE_CATALOG_ROLE SYS FGA_LOG$ SYS DELETE NO NO DELETE_CATALOG_ROLE SYS AUD$ SYS DELETE NO NO
#####chenjuchao 20210611 13:03#####