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 …