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!


25 Posts