[firebase-br] Bloqueio de Acesso Banco de Dados

Valdir Dill valdiralbertod em gmail.com
Quarta Maio 11 11:11:02 -03 2022


Bom dia,

Gostaria de abordar a questão de acesso de usuários aos dados de um 
banco de dados Firebird.

Estamos da questão de segurança de dados de BD Firebird em que a 
principal premissa é que usuário não autorizado não deve ter acesso ao 
arquivo de dados.
Até aí tudo certo.

O problema vem quando um usuário, acha que entende de programação, e vai 
lá no banco de dados e altera/insere dados através de um software de 
terceiros (IBExpert, por exemplo).

Por exemplo, nosso sistema é distribuído a nível nacional. Muito usuário 
quer fazer operações em massa nos dados (excluir, alterar e/ou incluir 
dados).
Obviamente que esse procedimento, se feito sem conhecimento/supervisão 
do desenvolvedor, é muito perigoso e pode acabar com toda integridade 
dos dados de uma ou mais tabelas.
Apesar de chaves que se pode incluir do banco, mas não é possível 
controlar tudo que o usuário venha a "fuçar" nos dados

Aí alguém vai dizer: "...mas se o usuário fizer isso e depois der 
problemas, é responsabilidade dele...". Concordo plenamente com isso. O 
problema é você (desenvolvedor) provar para ele isso depois.
O cara mexe nos dados lá fazendo um update em alguma tabela e isso, 
certamente, em algum momento, vai "bagunçar" os dados ou, pelo menos, 
trazer relatórios inconsistentes.
Quando o problema ocorrer, esse usuário sequer vai lembrar que fez 
aquela lambança nos dados e vai cobrar de quem? Do desenvolvedor.
Aí é que vem o maior problema: não há como se provar isso ao usuário que 
ele fez determinada operação no BD através de outra ferramenta (IBExpert 
ou outra).

No Firebird 2.5 temos uma role SYSDBA que bloqueia o acesso do usuário 
SYSDBA e, dessa forma, conseguimos impedir que 99% dos usuários mexam no 
banco.
Sim, estamos cientes também que essa role é facilmente contornada 
alterando o arquivo com um software que leia dados hexadecimal. Mas isso 
precisaria de um TI com bom conhecimento na área.
Numa média geral, apenas 1% dos usuários conseguem fazer essa exclusão 
da role. Então, com essa role, esse problema de usuário mexer no BD é 
evitado em 99% dos casos.
Não é perfeito, mas evita muuuuuuita "dor de cabeça".

No Firebird 3.0 ou superior, nem essa role não é mais possível usar.

O que poderia ser feito para minimizar esse problema no FB 3 ou superior?

Já analisamos a questão da criptografia, mas é um pouco complexa na 
implementação e manutenção, em especial num sistema como o nosso, que 
tem usuários de todos os níveis de conhecimento. Além disso, se o 
usuário restaurar um backup, já será anulada a criptografia.

Desculpem, o texto longo, mas queria detalhar bem a situação.
Se alguém puder me ajudar com sua opinião/experiência sobre o assunto...

Obrigado!
Cordialmente  Financeiro

------------------------------------------------------------------------
/Cordialmente
Valdir Dill
/


Mais detalhes sobre a lista de discussão lista