Neca : por definição um DBA tem diversos privilégio CREATE ANY (ANY TABLE, 
ANY PROCEDURE, etc, etc) que lhe permite alterar qualquer Objeto de qualquer 
schema... Nesse cenário, vc tem que :

 1. afaik a Única maneira 100% garantida de proibir alterações em objetos 
programáticos é adquirir e instalar/configurar uma solução externa ao database, 
que permita um lockdown : a Oracle fornece o Oracle database Vault, veja mais 
dets em 
http://www.oracle.com/technetwork/database/options/database-vault/index-085211.html,
 e outros parceiros também tem as suas..
 O ponto é que TODAS elas custam $$ extra...
 
 2. ao invés de impossibilitar, vc pode proibir alterações contratualmente ** E 
** :
 
   a. Auditar o DBA e todo mundo, e aplicar uma Multa se a Auditoria encontrar 
alterações
   
   e/ou
   
   b. se detectar alterações, bloquear a Aplicação : por exemplo, manter numa 
tabela/arquivo da aplicação (provavelmente encriptado, com DBMS_CRYPTO ou 
semelhante) a lista de propriedades dos objetos da Aplicação E a aplicação na 
hora do startup consulta a DBA_OBJECTS e compara os dados da DBA_OBJECTS contra 
essa tabela/arquivo - se houver diferenças na data de criação, tamanho, ou seja 
o que for, É Evidência que alteraram os objetos da Aplicaçãod, aí a Aplicação 
aborta/dá uma mensdagem pro usuário, coisa assim
   
   e/ou
   
   c. vc pode DIFICULTAR a alteração dos objetos, encriptando-os com WRAP : 
isso não é Absolutamente e Completamente 100% seguro, mas é um bom começo - não 
é algo simples vc alterar objetos wrapped e/ou os desencriptar ...
   
 ==> A Oracle mesmo nos objetos internos dela (os do schema SYS) usa técnicas 
derivadas das 3 alternativas acima, a, b e c ....

  []s

   Chiappa 

--- Em oracle_br@yahoogrupos.com.br, "Marcos" <informatica@...> escreveu
>
> Boa tarde
> 
> Srs tem como bloquear os objetos de um usuário pra que outros usuários não 
> alterem?
> 
> Ex: tenho um usuário X (com triggers, packages etc) não gostaria que outro 
> usuário tivesse acesso a esses objetos, inclusive o sys. o sistema é 
> instalado no cliente e ele como dba, pode alterar algum objeto do meu sistema.
> 
> Não gostaria de usar o utilitário wrap.
> 
> Alguma sugestão?
> 
> Oracle 10g.
> 
> Marcos
>


Responder a