Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #82923
    Naga
    Participante

      Ola pessoal,

      tenho um sistema que foi criado para trabalhar com o .net

      como o sistema foi criado a um bom tempo, passou por varias maos.

      o problema e que em partes do codigo, as query estao escritas com o owner explicitas e em outras, sem. pior, nem sempre esta como string, e sim como variavel, ou seja, esta tudo misturado.

      pergunta: tenho dois usuarios no oracle, um e o owner e o outro nao. tem como o que nao e owner acessar as tabelas do outro (owner) sem ter que explicita-lo (select * from OWNER.tabela)?

      obrigado desde ja

      #82926
      Ishii
      Participante

        Olá,

        Utilize o GRANT

        Exemplo: Owner SCOTT
        Tabela: employee

        Acesso via usuario NAGA

        Conectado como SCOTT digite:

        grant select on employee to NAGA;

        Ai o usuario NAGA pode fazer

        select * from employee

        []s 🙂

        #82929
        Naga
        Participante

          Obrigado pela resposta.

          Tem como fazer isso em unico grant, pois como e um sistema, tem varias tabelas, views, procedures, ….

          #82930
          Ishii
          Participante

            Olá,

            Sim, mas tem uns passos antes:

            1- Crie uma ROLE (create role naga_role;)
            2- Conceda os grants de todos os objetos para a role;
            2a- Para tabelas o ideal é select, insert, delete, update
            2b- Para views somente select
            2c- Para procedures, packages e function grant execute
            3- Conceda o grant da role para o User do Oracle e refaça somente isso para cada user que vc precisar.

            []s Ishii

            #82931
            Ishii
            Participante

              Olá,

              Segue aqui um script para te ajudar…

              spool xgrants.sql;

              select statement
              from
              ( select 'GRANT '||
              decode(object_type,
              'VIEW','SELECT',
              'FUNCTION','EXECUTE',
              'PROCEDURE','EXECUTE',
              'PACKAGE','EXECUTE',
              'ALL')||
              ' ON '||object_name||
              ' TO ;' statement
              from user_objects
              where user = AND
              object_type in ('TABLE',
              'VIEW',
              'PROCEDURE',
              'FUNCTION',
              'PACKAGE',
              'SEQUENCE')
              )
              /

              spool off;

              @xgrants.sql;

              []s Ishii

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