Teremos auditores externos vindo para realizar uma revisão em nosso banco de dados Oracle. Eles estarão executando uma ferramenta para realizar a revisão e, para isso, exigem um ID de usuário que possa se conectar ao banco de dados e obter informações dele.
Temos um usuário existente no banco de dados para isso. No entanto, é um ID de produção e não podemos permitir que ele seja bloqueado. Gostaríamos de clonar / duplicar este ID, incluindo suas funções e direitos.
Existe uma maneira de fazer isso no Oracle?
Criação do usuário:
Função padrão:
Concessões do sistema:
Concessões de objeto:
Concessões de papéis:
Cotas:
Se algum dos itens acima não tiver saída, você receberá uma exceção parecida com esta:
Em seguida, faça uma pesquisa e substitua na saída para alterar o nome de usuário.
SELECT DBMS_METADATA.get_ddl ('USER', 'SASIO') FROM DUAL UNION ALL SELECT DBMS_METADATA.get_granted_ddl ('DEFAULT_ROLE', 'SASIO') FROM DUAL UNION ALL SELECT DBMS_METADATA.get_granted_ddl ('SYSTEM_GRANT', 'SASIO') FROM DUAL UNION ALL SELECT DBMS_METADATA.get_granted_ddl ('OBJECT_GRANT', 'SASIO') FROM DUAL UNION ALL SELECT DBMS_METADATA.get_granted_ddl ('ROLE_GRANT', 'SASIO') FROM DUAL