Protheus e o GRANT de DBA no Oracle
Obs: Faça por conta e risco e em base de testes
Uma das grandes reclamações de empresas é sobre a segurança com o banco de dados. Tenho visto que muitos DBAs, não aceitam que o Protheus precise ter o grant de DBA para poder funcionar corretamente. Sinceramente concordo com isso.
Pessoalmente não gosto de dar todo esse poder, não que ache o Protheus não é confiável, mas, como muitas consultorias e pessoas acabam tendo acesso ao Protheus, é prudente limitar.
Estou em fase de transição de carreira de Analista de Sistemas para DBA Oracle/Sql Server, como trabalho com os dois mundos Protheus e Oracle, procurei uma forma de dar esse acesso sem parar o Protheus.
O teste será feito da seguinte forma :
| Versão do DbAcess | 4.2 Build 20141119 64 bits |
| Versão do Oracle | 11.2.0.3 |
Vou deixar o serviço do DBACCESS no modo console para podermos visualizar tudo o que esta ocorrendo.
Subindo o serviço do Dbaccess
Concedendo as permissões
OBS: Recomendo executar este procedimento por um DBA
Caso já tenha concedido o acesso de DBA, faça o revoke
SQL> REVOKE DBA FROM NOME_SCHEMA;
Conceda as permissões, pode ser que o Protheus reclame de outras, se ocorrer, verifique no log do Dbaccess.
Testando a conexão
Note que ocorreu o erro Ambiente, Usuário ou Senha inválido.
O usuário, senha e ambientes não estão inválidos, a resposta do Protheus esta incorreta. Esta é uma mensagem genérica.
Vamos analisar o log do DBACCESS com mais detalhe :
Observando o log de erro acima, o Protheus tentou fazer um select na schema SYS na tabela OBJ$, mas o usuário não tem esse acesso.
O que o Protheus realmente precisa, é acessar as views de dicionário de dados.
Com isso, se der o grant de DBA, o usuário do Protheus consegue ler o conteúdo desta tabela.
Mas é justamente o que não queremos, então vamos dar acesso de leitura com o comando abaixo :
Ok, feito isso, vamos testar novamente
Pronto, revogamos o grant de DBA e o Protheus consegue se conectar.
Mas ainda não acabou..... O grant acima, foi somente para conexão com a base.
Ao tentar acessar o Protheus, os erros continuam....
Vamos dar mais permissões :
GRANT SELECT ON SYS.COLS$ TO NOME_SCHEMA;
GRANT SELECT ON SYS.OBJ$ TO NOME_SCHEMA;
GRANT SELECT ON SYS.ICOL$ TO NOME_SCHEMA;
GRANT SELECT ON V_$SESSION TO NOME_SCHEMA;
GRANT SELECT ON SYS.IND$ TO NOME_SCHEMA;
A permissão V_$SESSION é feita devido ao Protheus tentar dar select na V$SESSION que na verdade é um sinônimo.
Após tudo isso, fiz os seguintes testes no Protheus :
- Atualizei o TSS -> Sem erros
- Rodei os compatibilizadores do Protheus -> Sem erros
- Criei tabela, indices, campos através do SIGACFG -> Sem erros
Se você gostou, clique nos links patrocinados. Obrigado !!!







Nenhum comentário:
Postar um comentário