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