› Fóruns › Banco de dados Oracle › Bloquear usuário de realizar DML no seu próprio schema
- Este tópico contém 4 respostas, 4 vozes e foi atualizado pela última vez 15 anos, 9 meses atrás por
juliano_sf.
-
AutorPosts
-
4 de agosto de 2010 às 8:17 pm #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
4 de agosto de 2010 às 8:47 pm #95376burga
ParticipanteO ú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.
4 de agosto de 2010 às 9:11 pm #95379Regis Araujo
ParticipanteOpa..
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..!
5 de agosto de 2010 às 7:50 pm #95402gauss
ParticipantePessoal, 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!
6 de agosto de 2010 às 6:22 am #95413juliano_sf
ParticipanteOpa,
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
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › Banco de dados Oracle › Bloquear usuário de realizar DML no seu próprio schema