I recently discovered about column ORACLE_MAINTAINED added to DBA views and got excited over nothing.
ORACLE_MAINTAINED from DBA_ROLES
Denotes whether the role was created, and is maintained, by Oracle-supplied scripts (such as catalog.sql or catproc.sql).
A role for which this column has the value Y must not be changed in any way except by running an Oracle-supplied script.
STOP HERE:
Please read post ORACLE_MAINTAINED Set From “_ORACLE_SCRIPT” parameter to the real reasons (I must have messed up somewhere).
Updated: the statements below are not correct.
It looks like ORACLE_MAINTAINED is only valid for CDB and seems as if Oracle is really wanting all databases to go to CDB.
For Non-CDB, ORACLE_MAINTAINED value is ‘Y’ even when not.
test:(MDINH@test):PRIMARY> select name,cdb from v$database; NAME CDB ------------------------------ --- test NO 1 row selected. test:(MDINH@test):PRIMARY> select username,oracle_maintained from dba_users order by 1; USERNAME O -------------------- - ANONYMOUS Y APPQOSSYS Y AUDSYS Y DBSNMP Y DEMO Y DIP Y GSMADMIN_INTERNAL Y GSMCATUSER Y GSMUSER Y MDINH Y OJVMSYS Y ORACLE_OCM Y OUTLN Y SYS Y SYSBACKUP Y SYSDG Y SYSKM Y SYSTEM Y XDB Y XS$NULL Y 20 rows selected. test:(MDINH@test):PRIMARY> select role,oracle_maintained from dba_roles order by 1; ROLE O ------------------------------ - ADM_PARALLEL_EXECUTE_TASK Y AQ_ADMINISTRATOR_ROLE Y AQ_USER_ROLE Y AUDIT_ADMIN Y AUDIT_VIEWER Y AUTHENTICATEDUSER Y CAPTURE_ADMIN Y CDB_DBA Y CONNECT Y DATAPUMP_EXP_FULL_DATABASE Y DATAPUMP_IMP_FULL_DATABASE Y DBA Y DBFS_ROLE Y DELETE_CATALOG_ROLE Y EJBCLIENT Y EM_EXPRESS_ALL Y EM_EXPRESS_BASIC Y EXECUTE_CATALOG_ROLE Y EXP_FULL_DATABASE Y GATHER_SYSTEM_STATISTICS Y GDS_CATALOG_SELECT Y GLOBAL_AQ_USER_ROLE Y GSMADMIN_ROLE Y GSMUSER_ROLE Y GSM_POOLADMIN_ROLE Y HS_ADMIN_EXECUTE_ROLE Y HS_ADMIN_ROLE Y HS_ADMIN_SELECT_ROLE Y IMP_FULL_DATABASE Y JAVADEBUGPRIV Y JAVAIDPRIV Y JAVASYSPRIV Y JAVAUSERPRIV Y JAVA_ADMIN Y JAVA_DEPLOY Y JMXSERVER Y LOGSTDBY_ADMINISTRATOR Y OEM_ADVISOR Y OEM_MONITOR Y OPTIMIZER_PROCESSING_RATE Y PDB_DBA Y PROVISIONER Y RECOVERY_CATALOG_OWNER Y RECOVERY_CATALOG_USER Y RESOURCE Y SCHEDULER_ADMIN Y SELECT_CATALOG_ROLE Y TEST Y XDBADMIN Y XDB_SET_INVOKER Y XDB_WEBSERVICES Y XDB_WEBSERVICES_OVER_HTTP Y XDB_WEBSERVICES_WITH_PUBLIC Y XS_CACHE_ADMIN Y XS_NAMESPACE_ADMIN Y XS_RESOURCE Y XS_SESSION_ADMIN Y 57 rows selected. test:(MDINH@test):PRIMARY> ++++++++++ SYS@tmnt> select username,oracle_maintained from dba_users order by 1; USERNAME O -------------------- - ANONYMOUS Y APPQOSSYS Y AUDSYS Y C##GGS_ADMIN N C##TESTING N DBSNMP Y DIP Y GSMADMIN_INTERNAL Y GSMCATUSER Y GSMUSER Y ORACLE_OCM Y OUTLN Y SYS Y SYSBACKUP Y SYSDG Y SYSKM Y SYSTEM Y XDB Y XS$NULL Y 19 rows selected. SYS@tmnt> create role test; create role test * ERROR at line 1: ORA-65096: invalid common user or role name SYS@tmnt> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 APRIL READ WRITE NO 4 DONNIE MOUNTED SYS@tmnt> alter session set container=april; Session altered. SYS@tmnt> create role test; Role created. SYS@tmnt> select role,oracle_maintained from dba_roles order by 1; ROLE O ------------------------------ - ADM_PARALLEL_EXECUTE_TASK Y AQ_ADMINISTRATOR_ROLE Y AQ_USER_ROLE Y AUDIT_ADMIN Y AUDIT_VIEWER Y AUTHENTICATEDUSER Y CAPTURE_ADMIN Y CDB_DBA Y CONNECT Y DATAPUMP_EXP_FULL_DATABASE Y DATAPUMP_IMP_FULL_DATABASE Y DBA Y DBFS_ROLE Y DELETE_CATALOG_ROLE Y EM_EXPRESS_ALL Y EM_EXPRESS_BASIC Y EXECUTE_CATALOG_ROLE Y EXP_FULL_DATABASE Y GATHER_SYSTEM_STATISTICS Y GDS_CATALOG_SELECT Y GLOBAL_AQ_USER_ROLE Y GSMADMIN_ROLE Y GSMUSER_ROLE Y GSM_POOLADMIN_ROLE Y HS_ADMIN_EXECUTE_ROLE Y HS_ADMIN_ROLE Y HS_ADMIN_SELECT_ROLE Y IMP_FULL_DATABASE Y LOGSTDBY_ADMINISTRATOR Y OEM_ADVISOR Y OEM_MONITOR Y OPTIMIZER_PROCESSING_RATE Y PDB_DBA Y PROVISIONER Y RECOVERY_CATALOG_OWNER Y RECOVERY_CATALOG_USER Y RESOURCE Y SCHEDULER_ADMIN Y SELECT_CATALOG_ROLE Y TEST N XDBADMIN Y XDB_SET_INVOKER Y XDB_WEBSERVICES Y XDB_WEBSERVICES_OVER_HTTP Y XDB_WEBSERVICES_WITH_PUBLIC Y XS_CACHE_ADMIN Y XS_NAMESPACE_ADMIN Y XS_RESOURCE Y XS_SESSION_ADMIN Y 49 rows selected. SYS@tmnt>
