Série da semana: Primeiros passos no React

Veja mais

Usuarios no MySQL com sistemas

27/11/2015

2

Uma coisa que me intrigou sobre os usuários do MySQL, determinar o tipo de modificações, acessos, deleções...etc, em uma aplicação, não importa qual tecnologia: Java, PHP, C#, os usuário desse sistema deverão obrigatoriamente serem criados como usuário do MySQL?

Por que estou fazendo essa pergunta, vi um banco feito de um sistema, nele tinha uma tabela de usuarios, fazemos a relação?
Responder

Posts

28/11/2015

William

Luiz, basicamente você cria perfis de usuários, já desenvolvi site com administrativo onde eu tinha somente 2 perfis ADMINISTRATIVO e VISITANTE.

Nesse caso o perfil ADMINISTRATIVO tinha permissão de escrita, leitura em praticamente todas as tabelas, já o perfil de VISITANTE tinha permissão de leitura e escrita em apenas uma tabela quer era de contatos, pois era possível enviar contato pelo site e todos eram gravados na tabela contatos para manter o histórico.

Já tive outro caso em que existia 3 perfis, MASTER, ADMINISTRATIVO e FUNCIONARIO, dessa forma você tem permissões por grupo, não é viável criar um usuário no MySQL para cada funcionário da empresa.

Após você definir os acessos dos perfis e criar esses usuário no MySQL basta disponibilizar uma opção na tela para cadastro de usuários na sua aplicação onde pode ser informado qual o perfil do usuário que está sendo cadastrado.

Observação: Nenhum dos perfis que crio tem permissão de executar instruções DDL tais como: DROP, CREATE, ALTER, TRUNCATE e etc., isso é outro nível de usuário.
Responder

28/11/2015

Luiz Nogueira

Podemos concluir que o correto é sempre fazer essa diferenciação no banco de dados, certo? Existe a diferença entre os usuarios criados(na tabela) e os usuarios do MySQL?
Responder

29/11/2015

William

Podemos concluir que o correto é sempre fazer essa diferenciação no banco de dados, certo?

Sim essa é sempre a abordagem mais correta e segura, independente do SGBD (MySQL, SQL Server, PostgreSQL e etc)


Existe a diferença entre os usuarios criados(na tabela) e os usuarios do MySQL?

Na verdade ocorre que no momento do login a primeira consulta para validar os dados do usuário tem que ser usando a conexão com privilégio ADMINISTRATIVO para ter acesso a tabela de usuários, depois que capturo os dados fecho essa conexão e inicio uma nova conexão com o privilégio capturado na consulta.


Você pode também bloquear funcionalidades na aplicação conforme o privilegio, pois essa do banco é muito boa para garantir a segurança contra invasores mas para o usuário leigo somente esconder um menu já ajuda bastante.
Responder

29/11/2015

Luiz Nogueira

Irei pesquisar mais sobre essas restrições de acesso, acredito que um bom inicio seria o MVC alem dos conhecimentos "internos" dos banco de dados.
Te agradeço pela imensa ajuda William!
Responder