Oi Chiappa,

agora eu peguei o seu raciocínio - a forma de implementar isso 
dependeria de inúmeras parafernálias tipo SQL dinâmico.
Sobre a queda de performance de SQLs dinâmicos, eu nem preciso ir no 
Asktom.
Eu já fiz muitos testes e comprovo o que vc diz em número, genero e grau.

Mas siga o meu raciocínio e cenário.

GRANT SELECT <tabela> TO <role>

Quando vc dá GRANT <role> TO USER <usuario>, o acesso a tabela pelo 
usuário é automático, correto?
Vc não precisa ter SQL dinâmicos ou qq outra parafernália para que o 
usuário passe a enxergar a tabela.

Porque não existir o mesmo automatismo para um GRANT SELECT ON ANY TABLE 
to <role>?
Repare que no meu caso hipotético, o usuário só irá consultar as 
tabelas: imagine, por exemplo, um Dataware House.

Em ambientes muito dinâmicos, o processo de criação de tabelas é 
constante e muitas vezes não existe um AD só para ficar controlando isso.
Se houvesse algo automático, vc teria uma tarefa a menos para dar a ele.

Isso me lembra uma visita em uma empresa em que o prazo para criar um 
campo em uma tabela era de 1 mês....
Quando chegamos e começamos a criar uma tabela por dia (com seus 
respectivas telas de manutenção), o usuário pirou e passou a nos amar 
eternamente :)))

Antes que me crucifixem por estas afirmações, recomendo a todos o livro 
Refactoring Database do Scott Ambler (o das metodologias ágeis)
http://www.agiledata.org/essays/databaseRefactoring.html

------------
Sobre o Metalink: esse é um tema polêmico!!!

Eu até teria verba para comprar mas não concordo com os termos da Oracle.
É uma questão de principio. Se vc compra um produto Oracle, vc deveria 
ter automaticamente acesso ao Metalink sem ter que pagar a mais por isso.

Até a Microsoft e a Apple que são os piores casos de desrespeito ao 
consumidor tem seus equivalentes de "Metalink" abertos para quem compra 
os produtos deles.
Por isso, eu pago R$10mil a um consultor mas não pago R$3mil pelo Metalink.

Um abraço,
Josir.



 >O porquê de não ser a melhor opção, em primeiro lugar é por que pra
 >implementar isso vc VAI TER QUE, como eu disse, criar triggers/jobs
 >que criem SQLs dinâmicos com DDL, e há "imposto de performance" se
 >houver abuso tanto para SQL dinâmico (parses extras) quanto para DDLs


[As partes desta mensagem que não continham texto foram removidas]

Responder a