Segurança em Bases de Dados Progress – Última Parte

Escrito por Eloi Rene Pscheidt em 11 de novembro de 2008, 16:51h

No post anterior verificamos a necessidade de controlar quais r-codes podem ser executados em um banco de dados Progress, uma vez que um programa Progress compilado pode ignorar a configuração de segurança que fizemos.

Precisamos também controlar o acesso SQL à este banco, realizado através de conexões ODBC ou JDBC. A abordagem de acesso SQL ao banco difere um pouco do acesso 4GL que vimos até agora. Para conexões SQL o banco não permite acesso anônimo. São dois usuários que por definição já possuem acesso SQL com permissões administrativas ao banco, são eles o usuário do sistema operacional que criou o banco e o usuário SYSPROGRESS.

Controlar a senha do usuário que criou o banco não é difícil, sendo que este usuário geralmente é o administrador do servidor que, por sua vez, já deverá possuir uma senha que poucos usuários tenham acesso. Já o usuário SYSPROGRESS deverá ser criado e deverá ter sua senha confiada à poucas pessoas. Não criar o usuário SYSPROGRESS permitirá que algum usuário não autorizado o crie a qualquer momento, recebendo assim os direitos administrativos neste banco.

Com o usuário SYSPROGRESS criado, é uma boa prática não divulgar esta senha para todos os usuários do banco, mas sim conceder permissões de acesso SQL necessárias à eles. Isso é possível através dos comandos GRANT e REVOKE, que permitem conceder e retirar permissões de usuários, respectivamente. Em nosso banco de dados de exemplo, utilizaremos os seguintes comandos para conceder permissões de leitura na tabela customer para o usuário "maria" e poder de criação, alteração, consulta e exclusão para o usuário "joao":

grant select on PUB.customer to maria;
grant select, insert, update, delete on PUB.customer to joao;

Mais detalhes sobre os comandos GRANT/REVOKE bem como particularidades do acesso SQL em bancos Progress podem ser obtidos na documentação do produto e em outros posts que serão publicados neste blog.

É importante saber que as permissões concedidas para o acesso 4GL não são válidas para o acesso SQL e vice-versa. Desta forma as permissões can-read, can-write, can-create e can-delete não tem validade para este tipo de conexões.

Para finalizar esta série de posts sobre segurança em bases de dados Progress, vale lembrar que de nada adianta proteger o banco com chaves de acesso, permissões 4GL e SQL se o acesso ao servidor não estiver protegido. Ali um usuário mal intencionado poderá roubar as informações deste banco através de um dump/load binário ou ainda destruí-lo. 

Categorias: Banco de dados | Conectividade | Segurança

Tags: , ,

Comentários

Comentar




biuquote
  • Comentário
  • Pré-visualização
Loading