Boa tarde a todos do fórum! Uma pergunta boba, mas que me deixou encucado :shock:
Qual é o ideal para autenticar um usuário em um sistema, em termos de segurança, e que procedimento é o mais adotado:
- Cadastrar cada usuário do sistema diretamente como usuário do banco de dados? E desta forma, validar seu acesso se o mesmo conseguir efetuar login no banco.
O controle de acesso seria estabelicido pelo próprio banco de dados. Regras adicionais poderiam ser programadas no aplicativo, sem prejuízo do controle do BD.
A desvantagem é que o usuário, se conhecer o caminho para acessar o banco e tiver bons conhecimentos técnicos, poderia ele mesmo realizar a conexão pelo banco e extrair as informações que quiser.
Por exemplo:
Quando o usuário teste criar seu login no sistema, faço a consulta pelo aplicativo: “CREATE USER teste …”. O login dele, será feito usando o controle de acesso do próprio BD.
- Cadastrar cada usuário em uma tabela, própria para isso, e fazer a validação do acesso através de um USER genérico no banco de dados? Neste caso, o sistema estabeleceria a conexão com o banco de dados, procuraria o login em uma tabela de usuários e compararia a senha, para ver se está correta.
Este procedimento teria como desvantagem o seguinte: o nível de acesso às operações eu teria que controlar pelo programa, e não daria para estabelecer regras pelo bd, sem ter que efetuar duas conexões.
Por exemplo:
Quando o usuário teste logar no sistema, o aplicativo conecta ao banco como ‘usuario’, faz o login, e faz a consulta à tabela USUARIOS, se encontrar o login, compara a senha fornecida, para ver se está correta.
Se estiver, libera o acesso ao aplicativo.