Instalei o Oracle 12c R2 em minha máquina local e criei o HR
esquema usando este link: Instalando esquemas de amostra
Também dei GRANTS
ao HR
esquema para visualizar o dicionário de dados.
GRANT SELECT ANY DICTIONARY TO HR;
GRANT SELECT_CATALOG_ROLE TO HR;
Agora, quando me conecto como SYSDBA
, consigo visualizar o PDBS.
SQL> select con_id, dbid, name
from v$pdbs;
CON_ID| DBID|NAME
----------|----------|------------------------
2|3752719039|PDB$SEED
3|3679838824|ORCLPDB
No entanto, quando logado como RH, não mostra nada.
SQL> select con_id, dbid, name
from v$pdbs;
no rows selected
Eu certamente me conectei à mesma instância. A saída desta consulta é a mesma para ambas as conexões.
SQL> select SYS_CONTEXT('USERENV','INSTANCE_NAME') instance FROM DUAL;
INSTANCE
-----------------
orcl2
O que estou perdendo aqui?
Presumo que o usuário seja um usuário comum conectado ao contêiner raiz.
O atributo CONTAINER_DATA de um usuário comum determina quais PDBs são visíveis em objetos de dados de contêiner