Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 7 anos atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #108966
    Avatar de Ricardo RodriguesRicardo Rodrigues
    Participante

      Boa tarde Galera,

      Versão Oracle 10G.

      Existe um grant específico de todas as tabelas do usuário A para B poder fazer select? Lembrando que sem usar scripts.

      Por exemplo:

      grant select any table from A to B;

      #108967
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Pode consultar na Documentação Oracle, que ** ABSOLUTAMENTE NÂO EXISTE isso ** no RDBMS Oracle não : ou vc dá GRANT um UMA tabela de UM owner ou dá GRANT de SELECT ANY TABLE, não há outra opção… A segunda alternativa é a PIOR,pois cfrme documentado ANY significar QUALQUER (tabela, no caso) de QUALQUER usuário, horroroso para a segurança….
        Então se vc quer dar GRANT de SELECT nas tabelas A,B,C,D,E do usuário X para o usuário Y, vc TERIA SIM que executar os comandos :

        GRANT SELECT ON X.A TO Y;
        GRANT SELECT ON X.B TO Y;
        GRANT SELECT ON X.C TO Y;
        GRANT SELECT ON X.D TO Y;
        GRANT SELECT ON X.E TO Y;

        Sim ?? O que vc ** PODE ** fazer seria SIM criar um script que te gere os GRANTs todos pra vc não os ter que escrever na mão, OU então (numa variação da técnica) escrever um programinha PL/SQL que gere os GRANTs necessários num cursor e execute cada um deles via EXECUTE IMMEDIATE ou DBMS_SQL…. SEM ESCAPATÓRIA AQUI….

        []s

        Chiappa

        OBS :

        a. lembrando, o GRANT pode ser para um USUÀRIO ou para uma ROLE : normalmente vc tem MUITOS usuários que precisam receber privilégios, então via de regra vc faz os GRANTs para uma ROLE e depois só precisa executar um único comando de GRANT ROLE pra cada usuário

        b. há ** OUTROS ** quebra-galhos e gambiarras que podem ser aplicados (tais como setar a ROLE que recebeu as perms com SET ROLE, ou criar triggers de DDL em comandos CREATE TABLE no database que já faria os GRANTs necessários, ou dar o privilégio para os usuários de se conectar via PROXY, herdando as mesmas permissões do usuário owner OU de um usuário que tem o SELECT nas tabelas em questão, mas tudo isso imho é GAMBI, e gambi COMPLEXA de fazer : o que RECOMENDO que vc faça é mesmo aplicar os GRANTs necessários

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