Pular para o conteúdo
  • Este tópico contém 6 respostas, 3 vozes e foi atualizado pela última vez 16 anos atrás por hudsona.
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #93124
    Marcos Lucas Melo
    Participante

      Olá 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.

      #93127
      hudsona
      Participante

        Marcos

        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!

        #93128
        Avatar photoRegis Araujo
        Participante

          Marcos, 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..!

          #93129
          hudsona
          Participante

            Regis

            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.

            #93130
            Marcos Lucas Melo
            Participante

              Thunder_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.

              #93131
              Avatar photoRegis Araujo
              Participante

                Sim 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..!

                #93140
                hudsona
                Participante

                  Regis

                  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!!

                Visualizando 7 posts - 1 até 7 (de 7 do total)
                • Você deve fazer login para responder a este tópico.