MySQL – Como criar usuários e atribuindo permissões

Se você deseja criar novos usuários e atribuir a ele permissões, siga este tutorial.

1. Faça login no MySQL;

2. Em seguida, digite o comando, substituindo as partes em negrito pelos valores desejados;

$ CREATE USER 'exemplo'@'localhost' IDENTIFIED BY 'password';

Neste caso, estamos criando o usuário de nome “exemplo”, o nome do host foi escolhido como localhost. Isto quer dizer que o usuário poderá se conectar ao servidor MySQL apenas a partir do localhost (ou seja, do próprio servidor em que o MySQL está sendo executado). Para conceder acesso de outro host, é possível substituir o termo pelo endereço IP do servidor a partir do qual você quer permitir o login. Ou, ainda, se quiser permitir o acesso a partir de qualquer servidor para este usuário, utilize o ‘%’.

Este usuário utilizará a senha “password” para se logar ao MySQL;

3. Não basta apenas criar o usuário. Da forma como está, ele não será capaz nem de logar o MySQL. É necessário atribuir as devidas permissões a ele. Neste caso, vamos dar todas as permissões na base de dados “tutoriais”, conforme o comando abaixo,

$ GRANT ALL PRIVILEGES ON tutoriais.* TO 'exemplo'@'localhost';

Caso precise autorizar o usuário em mais de um banco de dados, utilize o comando abaixo,

$ GRANT ALL PRIVILEGES ON *.* TO 'exemplo'@'localhost';

Caso você queira fornecer permissões específicas, substitua o “ALL PRIVILEGES” por alguma das opções abaixo:

  • CREATE – criar bases e tabelas
  • DROP – remover bases e tabelas
  • DELETE – remover entradas de uma tabela específica
  • INSERT – adicionar entradas a uma tabela específica
  • SELECT – possibilita ler uma base de dados
  • UPDATE – possibilita atualizar entradas de uma tabela

Obs.: se quiser adicionar duas ou mais, use a sintaxe abaixo:

$ GRANT CREATE, SELECT, UPDATE ON tutoriais.* TO 'exemplo'@'localhost';

4. Ao finalizar, atualize os privilégios;

$ FLUSH PRIVILEGES;

5. Agora, vamos testar o login com o novo usuário:

$ mysql -u exemplo -p

Conseguimos!

Veja que ao exibir os bancos de dados, são apenas listados o padrão (information_schema) e o tutoriais, que atribuímos no permissionamento.

6. Também é possível, com seu usuário padrão, listar as entradas “user” do mysql.

$ SELECT user FROM mysql.user;

Veja, ali está o nosso novo usuário.

Artigos relacionados