There is no privileges strong enough for you to view all objects in all databases
Let’s try
as sys:
SQL> select con_id, count(*) from cdb_objects group by con_id;
CON_ID COUNT(*)
---------- ----------
1 22749
3 22721
as non-sys
SQL> create user c##u identified by ***;
User created.
SQL> grant create session, select any dictionary to c##u;
Grant succeeded.
SQL> conn c##u/x
Connected.
SQL> select con_id, count(*) from cdb_objects group by con_id;
CON_ID COUNT(*)
---------- ----------
1 22749
You can try to grant and grant and grant, it won’t help
SQL> conn / as sysdba
Connected.
SQL> grant dba, cdb_dba, pdb_dba, all privileges, sysdba to c##u with admin option container=all;
Grant succeeded.
SQL> conn c##u/x
Connected.
SQL> select con_id, count(*) from cdb_objects group by con_id;
CON_ID COUNT(*)
---------- ----------
1 22749
This is not what you are missing…
SQL> revoke dba, cdb_dba, pdb_dba, all privileges, sysdba from c##u container=all; Revoke succeeded. SQL> grant create session, select any dictionary to c##u; Grant succeeded.
you need container data
SQL> alter user c##u set container_data=all container=current;
User altered.
SQL> conn c##u/x
Connected.
SQL> select con_id, count(*) from cdb_objects group by con_id;
CON_ID COUNT(*)
---------- ----------
1 22749
3 22721
Here you go …