- Este tópico contém 6 respostas, 3 vozes e foi atualizado pela última vez 16 anos atrás por
hudsona.
-
AutorPosts
-
12 de março de 2010 às 5:12 pm #93124
Marcos Lucas Melo
ParticipanteOlá gente estou precisando que dois usuário tenham acesso aos objetos que existem em um schema de outro usuário. os usuários estão com a role dba e conseguem selecionar os objetos dos schema(view,tabelas), porém não quero fazer ‘select * from schema.tabela’ e já pensei em usar sinonimo porém teria que criar um para cada objeto.
12 de março de 2010 às 5:32 pm #93127hudsona
ParticipanteMarcos
Sim você, vai precisar criar um sinonimo para cada objeto, porém não precisa fazer isso de um em um, faça da seguinte forma:
spool c:/cria_sinonimos.sql ( Pode ser outro local, ou outro nome)
SELECT ‘CREATE SYNONYM usuario_A.’ || OBJECT_NAME || ‘ FOR ‘ || O.OWNER || ‘.’ || O.OBJECT_NAME || ‘;’
FROM ALL_OBJECTS O
WHERE O.OWNER = ‘ACQUA_USER’
AND O.OBJECT_TYPE IN (‘SEQUENCE’,’TABLE’,’VIEW’);depois rode o script que ele vai criar os sinonimos direto.
Abraços!
12 de março de 2010 às 5:35 pm #93128Regis Araujo
ParticipanteMarcos, bom dia..!
Somente com sinonimo publico vc vai conseguir dar um select sem passar o schema antes da tabela, pois caso não fosse assim, imagina se vc tivesse 2 echemas com a mesma tabela.. e vc rodasse um update na tabela.. como q vc teria a garantia que o update estava sendo executado na tabela correta??
Abraços..!
12 de março de 2010 às 5:39 pm #93129hudsona
ParticipanteRegis
Ele pode criar um sinonimo só para o usuário que precisa enxergar as tabelas, assim como sugeri. Na realidade geralmente acontece isso nas aplicações. Existe um usuário de aplicação que somente encherga os sinonimos para um usuário do banco owner dos objetos.
Um usuário ele usa só pra acessar os objetos diretamente sem precisar especificar o owner antes. E para alterações ele usa o usuário dono dos objetos.
12 de março de 2010 às 6:05 pm #93130Marcos Lucas Melo
ParticipanteThunder_Catz realmente não tinha pensado dessa maneira , porém no meu caso o que o hudsona falou pode ser aplicado. valeu gente pela ajuda.
12 de março de 2010 às 6:19 pm #93131Regis Araujo
ParticipanteSim Hudson.. eu entendi a sua explicação..
Só fiz uma adendo sobre ele somente conseguir acessar objetos sem colocar o nome do owner antes do objeto com um sinonimo publico.. explicar qual a real necessidade de não se poder acessar um objeto que não tenha sinonimo sem apontar de qual schema ele é..!!
Mas só complementando oq o Hudson disse.. tente criar sinonimos apenas para os objetos que vc terá que liberar o acesso, pois imagina um schema com uns 3000 objetos.. vc terá 3000 sinonimos, sendo que somente irá utilizar realmente 30 sinonimos..
Faça uma avaliação de quais objetos vc precisa e crie os sinonimos..!
Abraços pessoal..!
12 de março de 2010 às 9:22 pm #93140hudsona
ParticipanteRegis
Concordo completamente, os sinonimos só para o que o usuário vai necessitar acessar. E entendi também a sua explicação anterior ao marcoslucas.
Enfim o nosso amigo agora tem uma boa noção para escolher a sua melhor opção, com ajuda de um dos melhores aqui do GPO que é o Regis.Por isso que o GPO é um dos melhores fórums que eu já vi.
Abraço a Todos!!
-
AutorPosts
- Você deve fazer login para responder a este tópico.