1
resposta

Criação de sinônimos

Vamos supor que houvessem diversos usuários desenvolvedores, com várias aplicações diferentes e, em todas as aplicações houvessem tabelas clientes. Supondo ainda que existisse somente um usuário cliente para fazer a administração de entrada de dados nos vários sistemas, como o ORACLE lidaria com a criação de sinônimos iguais, para vários usuários? Exemplo: Usuário User_dev. CREATE PUBLIC SYNONYM EXCLUIR_CLIENTE FOR user_dev.EXCLUIR_CLIENTE;

Usuário CURSO PL SQL. CREATE PUBLIC SYNONYM EXCLUIR_CLIENTE FOR CURSO PL SQL.EXCLUIR_CLIENTE;

1 resposta

Olá Renato, tudo bem?

Peço desculpas pela demora no retorno.

Não deve haver problemas ao criar um sinônimo para dois usuários com o mesmo nome, já que eles são tratados individualmente. No Oracle existem dois tipos de sinônimo, o público e o privado .

  • Sinônimo público

Ao ser criado, o sinônimo estará disponível para todos os usuários do Banco de Dados que tenham os privilégios, ou seja, o usuário precisa ter permisão para executar o comando, como por exemplo, de chamar uma função.

Para se criar um sinônimo público, você precisa especificar a palavra PUBLIC, após o CREATE :

CREATE  PUBLIC SYNONYM nome_sinônimo FOR nome_objeto;
  • Sinônimo privado

Ao ser criado, o sinônimo estará disponível apenas para o usuário específico do Banco de Dados, ou seja, nenhum outro usuário poderá utilizar aquele sinônimo.

Para se criar um sinônimo privado, você não precisa especificar nada:

CREATE  SYNONYM nome_sinônimo FOR  nome_objeto;

Espero ter ajudado, qualquer dúvida é só falar e bons estudos!