okdoc - apenas aviso que o principal fator que vc tem que pesar no julgamento 
entre VPD x OLS são Custo, Tempo de Implementação e Adequação a Políticas 
Complexas. Veja vc, VPD é a tecnologia básica, embutida no RDBMS Oracle (e 
portanto sem custo) que permite que automaticamente uma condição a mais seja 
incluída nos WHERE de todos os SQLs com uma programação sua, adicional, que vc 
vai escrever, enquanto o OLS é um produto que usa o VPD para criar 
automaticamente as regras/condições que serão adicionadas no WHERE...  
 Por exemplo, digamos que seus requisitos de acesso sejam bem simples, baseada 
em um id do grupo de trabalho (ie, algumas linhas da tabela só podem ser 
enxergadas por quem está no grupo CONTADORES, outras só pelos usuários que 
estão no grupo DIRETORIA, e assim por diante) : com OLS vc simplesmente teria 
uma coluna LABEL_DE_ACESSO escondida na tabela (atributo hidden) e a indicaria 
no setup do OLS como a fonte, só... Já com VPD vc Teria que escrever cada IF, 
cada SELECT para buscar os dados de acesso, enfim, teria que programar cada 
detalhe.... Obviamente, isso que em tese é desvantagem do VPD ** RAPIDAMENTE ** 
pode ser transformar numa Vantagem : digamos que a sua política de acesso é 
mais complexa, que vc tem que levar em conta elementos dinâmicos não-presentes 
na tabela, como IP, usuário de rede, dia da semana/hora, ou coisas do tipo : 
isso é Facilmente programado com VPD, enquanto o OLS, como não é muito 
programável e é focado em LABELS, em informação já constante na tabela a ser 
protegida, seria bem mais trabalhoso/difícil de fazer algo ... Claro, não é que 
não faça, mas é que o OLS é um pacote pronto, onde vc não programa quase nada : 
quando os defaults dele se encaixam maravilha, vc POUPOU um montão de trabalho 
e isso em tese já justificou o custo dele, mas para situações mais complexas 
não é tão simples de o ajustar, aí imho passa a ser vantajoso o VPD, se for o 
caso combinando OLS com o VPD se possível...

  De referências, além da documentação (principalmente o capítulo do VPD no 
Oracle® Database Security Guide e o manual do OLS) veja 
http://www.orafaq.com/wiki/Oracle_database_Security_FAQ , 
http://www.oracle-base.com/articles/9i/oracle-label-security-9i.php (a versão 
do exemplo é antiga mas os conceitos básicos permaneceram), 
http://www.oracle-base.com/articles/10g/database-security-enhancements-10g.php#vpd
 (equivalente para o VPD), 
http://www.oracle.com/br/products/database/options/label-security/overview/index.html
 (aqui vc acha links para os foruns especializados e alguns artigos técnicos e 
cases), http://www.oracle.com/technetwork/database/security/ols-faq-088171.html 
e  http://www.oracle.com/technetwork/tutorials/index.html (procurando por LABEL 
SECURITY e por VIRTUAL PRIVATE DATABASE vc encontra vários OBEs e Tutoriais).

    []s

      Chiappa

Responder a