Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

coletar informações de dba_users no banco de dados Oracle quando conectado como usuário


As visualizações DBA_* no Oracle contêm informações sobre TODOS os objetos no banco de dados, independentemente da propriedade. Somente contas administrativas têm acesso a essas visualizações por padrão. Isso é feito por motivos de segurança. Para que um usuário "normal" obtenha acesso a essas exibições, ele deve receber acesso a elas, diretamente por exibição ou globalmente por meio de privilégios de sistema como SELECT ANY TABLE (não recomendado). É melhor conceder acesso à visualização DBA_ real que o usuário realmente precisa. Geralmente, as visualizações ALL_ fornecerão a um usuário típico todas as informações necessárias.

Para sair da sessão de usuário atual e conectar-se como outro usuário, use o comando CONNECT:
CONNECT sys/pw as sysdba

EDITAR:

O proprietário de um objeto pode conceder acesso a qualquer um de seus objetos a outro usuário ou função por meio do comando GRANT:
GRANT SELECT ON dba_users TO nonsys;

Executado como o usuário SYS, isso concederia acesso de seleção à exibição dba_users ao usuário nonsys.

Uma vez que a concessão é realizada, o usuário nonsys poderá selecionar a partir desta visualização por meio da instrução SELECT:
SELECT * FROM dba_users;