Tempo aproximado para leitura: 00:02:30 min
Dúvida
Para o correto funcionamento do sistema CorporeRM, quais as parametrizações de segurança e acesso devem ser implementadas no Banco de Dados?
Ambiente
Framework - Framework (Linha RM) - Banco de Dados - Todas as versões
Solução
Existem, a princípio, dois usuários de Banco, um usuário chamado 'SYSDBA' com senha masterkey e o RM com senha rm. O usuário RM será o Owner das tabelas, nomeado formalmente no Banco de Dados de SYSADMIN e o usuário SYSDBA terá acesso a 14 tabelas, conforme listado abaixo. Qualquer alteração realizada através do Banco de Dados nesses objetos, impossibilitará o acesso ao sistema, pois ocorrerá a quebra do campo Controle:
- GACESSO select
- GCOLIGADA select
- GDATALOG insert, select
- GMAILPARAMS select
- GPARAMETROSSISTEMA select
- GPARAMS select
- GPERMIS select
- GSERVICO select
- GSESSAOFLUIG delete, insert, select
- GSISTEMA select
- GULTIMOCONTEXTOUSUARIO delete, insert, select, update
- GUPGATUALIZACAO select
- GUSRPERFIL select
- GUSUARIO select, update
COMO FUNCIONA O LOGIN NO CORPORE:
O acesso ao CorporeRM por um determinado usuário da aplicação, sucede nas seguintes etapas:
Aplicação Dephi executável do modulo
A .dll de login do sistema acessa com usuário SYSDBA e senha masterkey os objetos necessários que possuem os dados básicos, criptografados, para liberar ou não o acesso ao sistema. Por esse motivo a senha do usuário SYSDBA só pode ser alterada caso seja criado o arquivo CorporeRM.ini
Uma vez que o usuário digitou seu nome e senha correta, o aplicativo acessa tabela GUSUARIO para verificar o CODACESSO correspondente ao usuário que efetuou o login.
Através da identificação do Código de Acesso, o sistema realiza uma consulta no objeto GACESSO para identificar o DBUSERNAME e o DBPASSWORD, que serão utilizados pelo sistema para a comunicação com o Banco de Dados..
Aplicação .net Nova MDI
Através do arquivo Alias.dat diretório RM.net, com o login/usuário Sysdba o sistema realize diversas consultas nos objetos globais, como GUPGATUALIZACAO e GULTIMOCONTEXTOUSUARIO;
Uma vez que o usuário digitou seu nome e senha correta, o aplicativo acessa tabela GUSUARIO para verificar o CODACESSO correspondente ao usuário que efetuou o login;.
Através da identificação do Código de Acesso, o sistema realiza uma consulta no objeto GACESSO para identificar o DBUSERNAME e o DBPASSWORD, que serão utilizados pelo sistema para a comunicação com o Banco de Dados.
Esse processo não é visível para o usuário, sendo assim, é importante garantir a conexão com o Banco de Dados através AliasManager, antes de acessar a aplicação.
As configurações de segurança incluem a criação dos logins/usuários devem ser realizadas conforme os scripts de Acerta Usuários. A criação de usuários com permissões indevidas, poderá influenciar no desempenho do sistema e ocasionar erros.
Basta seguir os seguintes documentos:
- Acerta Usuário para versões 12.1.1 e posteriores SQL SERVER
- Acerta ACESSO para versões 12.1.1 e posteriores ORACLE
ALTERANDO A SENHA DO USUÁRIO RM
Para realizar a alteração da senha do usuário RM, é necessário executar o seguinte procedimento:
- Realize um backup do banco de dados;
- Acesse a aplicação utilizando um usuário supervisor;
- Acesse a Serviços Globais / Segurança/ Códigos de Acesso;
- Altere os campos Nova Senha e Confirmação de Nova Senha' no ícone correspondente, definindo a futura senha do usuário de banco RM.
- Altere no banco a senha do usuário RM.
Em seguida, é orientado realizar o seguinte procedimento:
- Finalizar/Fechar os aplicativos CorporeRM abertos;
- Acessar a pasta RM.Net do diretório CorporeRM;
- Executar o aplicativo RM.Host.ServiceManager e clicar em Desinstalar;
- Localizar o arquivo _Broker.DAT e excluí-lo;
- Executar novamente o aplicativo RM.Host.ServiceManager e clicar em Instalar;
- Acessar o Aplicativo quando o serviço estiver iniciado.
Em ambiente 3 camadas é necessária atenção na execução desse procedimento, devido as estações clients, que podem parar de funcionar durante recriação do serviço de host.
ALTERANDO A SENHA DO USUÁRIO SYSDBA
Aplicação Dephi executável do modulo
A arquivo de login CorporeRM.ini permite ao cliente definir um usuário/senha diferente do SYSDBA para realizar a conexão com o banco de dados, de modo a obter os parâmetros de conexão para o usuário. Esta escolha se dá através da existência do arquivo: \CorporeRM\CorporeRM.ini, que deve ter o seguinte formato:
[LOGIN]
DBUSERNAME=usuario
DBPASSWORD=senha
Assim, a .dll correspondente procurará pela existência deste arquivo. Caso ele exista, ao invés do login SYSDBA/masterkey, serão utilizados os parâmetros de conexão informados no arquivo.
Aplicação .net Nova MDI
O arquivo Alias.dat diretório RM.net, possui os dados de conexão do alias parametrizados no RM.AliasManager.exe e por default armazena o usuário Sysdba com senha masterkey. Para a nova MDI, será necessário alterar as tags UserName e Password diretamente no arquivo:
<UserName>SYSDBA</UserName>
<Password>masterkey</Password>
Importante
A alteração da senha do Sysdba, não é necessária e nem recomendada pela TOTVS, tendo em vista que este usuário só tem permissão nas tabelas globais, que naturalmente são protegidas pelo campo Controle.
- Favor realizar qualquer procedimento acima em ambiente/base de teste e somente após avaliar os resultados aplicar em produção.
- As alterações realizadas para o login/usuário sysdba, ficaram expostas para o usuários da SO que tiverem acesso aos arquivos CorporeRM.ini e (ou) Alias.dat
0 Comentários