环境:
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#####
欢迎关注我的公众号《IT小Chen》