Pular para o conteúdo
  • Este tópico contém 4 respostas, 4 vozes e foi atualizado pela última vez 15 anos, 7 meses atrás por juliano_sf.
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #95374
    gauss
    Participante

      É possível impedir um usuário de modificar objetos no seu próprio schema?

      Por exemplo, tem um usuário USER01 que possui 20 tabelas. Eu consigo tirar a permissão deste usuário de realizar INSERT, UPDATE, DELETE em seus próprios objetos e ficar somente com SELECT?

      Abraços

      #95376
      burga
      Participante

        O único modo de fazer isto é via trigger de insert/update/delete em cada tabela, permitindo a inserção, alteração e deleção dos registros ou lançando uma exceção de acordo com o usuário logado…

        Não existe uma forma de se fazer isto com o comando grant.

        #95379
        Avatar photoRegis Araujo
        Participante

          Opa..

          Olha eu me intrometendo..

          Bom.. vamos la.. primeiro algumas dúvidas, qual o motivo de não permitir o dono do objeto de realizar alterações no mesmo ?

          O correto nestas situações é criar um outro usuário e dar grant apenas de select.. e para não precisar colocar o owner.objeto.. basta criar sinonimos publicos para os objetos e desta maneira terá um acesso bem mais seguro doq ficar criando trigger… alias.. esta deveria ser a politica de trabalho..

          1º – Schema owner dos Objetos
          2º – Schema com permissões de DML mas com acesso retrito pela aplicação.. criando uma trigger a nivel SYS bloqueando qualquer acesso que não seja do sistema utilizado (aplicação)
          3º – Schema com grant de select para os desenvolvedores realizarem consultas nas tabelas.

          Agora vai uma gambiarra.. deixar as tablespaces READ ONLY, ou seja, todos os objetos que existirem naquela tablespace somente será lido e não poderá ser alterado.. Mas isto é melhor garantido se existirem tablespaces separadas de DADOS e de INDICES, pois vc pode precisar criar um indice para melhorar algum select.. e deixar a tablespace de DADOS read only…

          Bom.. são algumas considerações..!!

          Abraços..!

          #95402
          gauss
          Participante

            Pessoal, obrigado pelas dicas, foram muito úteis. Os motivos pra habilitar isso são obscuros pra mim, o pessoal questiona e fui pesquisar.

            Eu apresentei as possibilidade aqui e acabaram concordando em impedir somente DDL, assim já fica mais fácil hehehe.

            Agradeço a ajuda!

            #95413
            juliano_sf
            Participante

              Opa,

              Uma solução seria você colocar as tabelas em uma tablespace read-only, mas aí ninguém teria privilegio de modificar estas tabelas a menos que esta tablespace seja colocada manualmente read-write. No sei se te ajuda.

              Abraços,

              Juliano

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