O MySQL é um sistema de gerenciamento de banco de dados SQL (Structured Query Language) muito rápido, multithread, multiusuário e robusto. Em outro artigo pretendo explicar melhor e de forma detalhada a ferramenta mas por hora se desejar saber mais sobre não deixe de consultar a documentação oficial.
Neste artigo vou me conter a mostrar como realizar as configurações necessárias para criação e gerenciamento de usuários no ambiente linux.
Plataforma de Testes Utilizada
- Sistema Operacional: Ubuntu 18.04
- Versão do Mysql: 5.7.29-0
Se Conectando ao Banco de Dados
Antes de realizarmos as configurações, precisamos nos conetar ao banco de dados. Isso pode ser feito com alguma ferramenta gráfica como por exemplo o MySQL Workbench mas vou deixar para explicar essa ferramenta em um outro artigo. Vamos então nos conectar por linha de comando.
sudo mysql -u root -p
Estou considerando o usuário root, mas sinta-se livre para se conectar com qualquer outro usuário desde que este tenha as permissões adequadas.
Insira sua senha e pronto, vamos ao passo seguinte!
Criando Novos Usuários
Utilize o comando CREATE USER para adicionar novos usuários, basta substituir no comando abaixo o nome (nomeDoUsuario) e a senha (password) do usuário com os valores desejados.
CREATE USER 'nomeDoUsuario'@'localhost' IDENTIFIED BY 'password';
Logo em seguida precisamos definir as permissões de acesso do novo usuário, pois caso contrario o mesmo não conseguirá realizar nenhuma função no sistema. Para isso utilizaremos o comando GRANT.
GRANT ALL PRIVILEGES ON * . * TO 'nomeDoUsuario'@'localhost';
Se atente ao fato de que o comando acima permite total acesso ao sistema por parte do usuário o que funciona bem para uma situação de teste. Entretanto em um ambiente profissional isso nem sempre é o mais adequado pois pode implicar em possíveis falhas de segurança. Logo precisamos definir os níveis de acesso correspondentes ao papel que o usuário irá desempenhar no sistema.
Para isso vamos detalhar melhor o comando GRANT.
GRANT tipoDePermissao ON nomeDaBaseDeDados.nomeDaTabela TO ‘nomeDoUsuario’@'localhost’;
Perceba que o comando permite definir o tipo de permissão, o nome do banco de dados e o nome da tabela para cada usuário. Dessa forma você tem a possibilidade de restringir o usuário a uma tabela especifica, banco de dados ou a todo o sistema se for o caso.
Para entender melhor observe os níveis de acesso possíveis abaixo:
ALL PRIVILEGES: Permite que um usuário MySQL tenha acesso a uma determinada base de dados ou se nenhuma base de dados for especificada, a todo o sistema.
CREATE: Permite criar novas tabelas ou bases de dados
DROP: Permite deletar tabelas ou bases de dados
DELETE: Permite deletar linhas das tabelas
INSERT: Permite inserir linhas nas tabelas
SELECT: Permite utilizar ler bases de dados
UPDATE: Permite atualizar linhas das tabelas
GRANT OPTION: Permite conceder ou revogar privilégios de outros usuários
Após finalizar suas configurações não se esqueça de inserir o seguinte comando a fim de recarregar as permissões que foram configuradas.
FLUSH PRIVILEGES;
Como exemplo vamos supor que você queira adicionar um usuário chamado “Eduardo” o qual poderá apenas visualizar os dados da tabela de folha de pagamentos da base de dados contabilidade, nosso comando ficará assim:
CREATE USER 'Eduardo'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT ON CONTABILIDADE.PAGAMENTOS TO ‘Eduardo’@'localhost’;
FLUSH PRIVILEGES;
Se por acaso você quiser revogar alguma permissão previamente concedida ao usuário, basta utilizar o comando REVOKE como segue abaixo:
REVOKE tipoDePermissao ON nomeDaBaseDeDados.nomeDaTabela FROM ‘nomeDoUsuario’@‘localhost’;
Também temos a opção de remover o usuário caso seja necessário, nesta situação faremos uso do comando DROP USER.
DROP USER ‘nomeDoUsuario’@‘localhost’;
Por fim para sairmos do prompt de comando do MySQL insira o comando quit ou exit.
quit;
exit;
Até o próximo artigo!