Vi uma situação na empresa feita por um AD (Administrador de
dados) que achei fantástico, criou-se ROLES para acessos as GRANTS dos outros
OWNERS, mas temos um grande problema como a aplicação irá acessar esta ROLE?
Vamos detalhar a aplicação, estamos utilizando Spring,
Primefaces, Hibernate e JPA, mas como o JPA irá setar a ROLE? Foi uma pergunta
que me tirou o sono, pois nem sempre é feito dessa forma e para este projeto
foi uma coisa nova, jamais havia experimentado esta forma de trabalho.
Como a arquitetura do sistema é MAVEN, como o MAVEN irá
subir o Data Source?
É conseguimos executar de forma brilhante isso e gostaria de
compartilhar estas informações com todos, segue abaixo o trecho do código:
No pom.xml tem um trecho de código que acrescentamos no Data
Source do pom.xml.
<database.driver>oracle.jdbc.driver.OracleDriver</database.driver>
<database.username>teste</database.username>
<database.password>teste</database.password>
<database.role>SET ROLE RO_TESTE_T IDENTIFIED BY POST78452L8K8Y9362</database.role>
<database.role.enabled>true</database.role.enabled>
No momento que sobe a aplicação, ele identifica toda a regra
da ROLE e quando executamos algum comando para insert, delete, update e select,
a ROLE é setado.
Espero que isso sirva de conhecimento para pessoas que
passaram pelo mesmo problema ou querem utilizar, uma forma mais segura de
acessar o banco de dados.
Só para finalizar de essa forma quem capturar o login e
senha do banco não terá acesso a nenhuma informação destinada aquele usuário,
pois necessita da ROLE, que é rodada em background na aplicação.
Caso precise de ajuda é só entrar em contato.