Como Criar Usuário MySQL e Conceder Privilégios: Guia para Iniciantes

Você quer entender o básico sobre operações MySQL? Então continue lendo, pois este artigo vai mostrar como criar um usuário no MySQL. Você também vai aprender diversos comandos para conceder privilégios, revogar privilégios e deletar usuários existentes.

Antes de continuarmos para a próxima seção do tutorial, garanta que você tem o MySQL instalado. Se você ainda não tem, temos ótimos tutoriais sobre como instalá-lo tanto no Ubuntu quanto no CentOS.

Dica

Vamos usar a linha de comando para acessar a nossa hospedagem de servidores para Linux como usuário root. Você pode usar PuTTY (Windows) ou o seu terminal (macOS, Linux) e logar usando a informação de login root SSH providenciada pelo seu provedor de hospedagem.

Como Criar uma Conta de Usuário MySQL e Conceder Todos os Privilégios

Assim que você começa a usar o MySQL, você receberá um nome de usuário e uma senha. Essas credenciais iniciais lhe concedem “acesso root”. O usuário root tem acesso total a todos os bancos de dados e tabelas dentro desses bancos de dados.

Mas muitas vezes, você precisa dar o acesso do banco de dados para outra pessoa sem conceder-lhes o controle total. Por exemplo, as empresas contratam desenvolvedores para manter bancos de dados, mas não querem dar-lhes a capacidade de excluir ou modificar qualquer informação.

Muitas vezes, elas fornecem credenciais de um usuário não-root para evitar esse problema. Desta forma, a empresa pode manter o controle do que seus desenvolvedores podem e não podem fazer com os dados.

Nesta parte, vamos explicar como criar uma conta de usuário no MySQL e conceder todos os privilégios para o seu banco de dados. Num sentido prático, não é inteligente dar controle total para um usuário que não é do tipo root.

Contudo, ainda trata-se de um bom ponto de partida para aprender sobre privilégio de usuários. Para criar uma nova de usuário no MySQL, siga esses passos:

  1. Acesse a linha de comando e entre no servidor MySQL:
mysql
  1. O Script vai retornar este resultado, que verifica que você está acessando um servidor MySQL.
mysql>
  1. Então execute o seguinte comando:
CREATE USER 'novo_usuário'@'localhost' IDENTIFIED BY 'senha'; 
  1. novo_usuário é o nome que damos para a nossa nova conta de usuário e a seção IDENTIFIED BY ‘senha’ define um código de acesso para esse usuário. Você pode substituir esses valores com os seus próprios, desde que só altere o que está dentro das aspas.
  2. Para garantir todos os privilégios do banco de dados para um usuário recém-criado, execute o seguinte comando:
GRANT ALL PRIVILEGES ON * . * TO 'novo_usuario'@'localhost'; 
  1. Para que as mudanças tenham efeito, execute imediatamente um flush dos privilégios ao executar o seguinte comando:
FLUSH PRIVILEGES;

Assim que isso estiver feito, a sua nova conta de usuário vai ter o mesmo acesso ao banco de dados do que a conta antiga.

Como Conceder Privilégios para um Usuário MySQL de Maneira Separada

Nesta parte, vamos explicar como conceder privilégios de maneira separada para uma conta de usuário no MySQL.

Na hora de especificar o nome do banco de dados e o nome da tabela, separe-os por um . (ponto final) e não use espaços. Isso vai dar ao usuário root um controle refinado sobre determinados dados.

Também substitua o valor PERMISSION_TYPE com o tipo de acesso que você quer conceder para a sua nova conta de usuário.

Aqui estão os comandos mais usados no MySQL:

  • CREATE – permite que os usuários criem bancos de dados ou tabelas
  • SELECT – permite que os usuários recuperem dados
  • INSERT – permite que os usuários adicionem novas entradas em tabelas
  • UPDATE – permite que os usuários modifiquem entradas existentes em tabelas
  • DELETE – permite que os usuários excluam entradas da tabela
  • DROP – permite que usuários excluam tabelas de bancos de dados inteiras

Dica

Ao usar o tipo de permissão ALL PRIVILEGES, que mencionos anteriormente, você habilitará todas as permissões listadas acima.

Para usar qualquer uma dessas opções, basta substituir [tipo de permissão] com a palavra-chave apropriada. Para aplicar vários privilégios, separe-os com um comando como este. Por exemplo, podemos atribuir privilégios CREATE e SELECT para o usuário MySQL não-root com este comando:

GRANT CREATE, SELECT ON *. * TO 'nome_de_usuário'@'localhost';

Claro, você pode enfrentar uma situação onde você precisa revogar privilégios de um usuário. Você pode fazer isso usando o seguinte comando:

REVOKE [tipo de permissão] ON [nome do banco de dados].[Nome da tabela] FROM 'nome_de_usuário'@'localhost';

Por exemplo, para anular todos os privilégios para nosso usuário não-root, devemos usar:

REVOKE ALL PRIVILEGES ON nome_do_banco_de_dados.nome_da_tabela FROM 'nome_do_usuário'@'localhost';

Finalmente, você pode excluir completamente um usuário existente usando o seguinte comando:

DROP USER 'nome_do_usuário'@'localhost';

Dica

Lembre-se, você precisa ter acesso root para rodar qualquer um desses comandos. Garanta que você vai executar o comando FLUSH PRIVILEGES; antes de executar suas mudanças.

Como Exibir os Privilégios da Conta para um Usuário MySQL

Para descobrir quais privilégios já foram concedidos para um usuário MysQL, você pode usar o comando SHOW GRANTS:

SHOW GRANTS FOR 'nome_do_usuário'@'localhost';

O retorno dessa string será algo parecido com isso:

+---------------------------------------------------------------------------+
| Grants for user_name@localhost                                             |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user_name'@'localhost'                              |
| GRANT ALL PRIVILEGES ON 'database_name'.* TO 'user_name'@'localhost'.      |
| REVOKE ALL PRIVILEGES ON * . * FROM 'user_name'@'localhost';  |
+---------------------------------------------------------------------------+
3 rows in set (0.00 sec)

O Que é um Banco de Dados MySQL?

Para entender o que é MySQL, você precisa saber o que é um banco de dados. Basicamente trata-se de um armazenamento virtual onde você pode salvar dados necessários para construir sites e aplicações da web.

Uma base de dados MySQL pode armazenar dados de contas, como nomes de usuários, senhas, endereços de email e qualquer tipo de informação que você desejar guardar para usar no futuro.

Contudo, os dados precisam ser armazenadas numa determinada ordem. É por isso que temos sistemas de gestão de bancos de dados. Essas ferramentas são usadas para se comunicar com a base de dados e permitir que os desenvolvedores criem a estrutura, armazenem, façam o dump e modifiquem os dados.

O MySQL é um dos nomes mais populares quando falamos de sistemas de gestão de databases. Isso se deve à sua facilidade de uso e sua extensa comunidade de suporte. Até plataformas como Facebook e Twitter usam o MySQL até certo ponto.

Conclusão

Um banco de dados é uma parte essencial de todo site e aplicação web, já que ele armazena todos os dados de usuários. Para gerenciar e se comunicar com ele de maneira mais eficiente, você vai precisar de um sistema de gestão de banco de dados.

É por isso que nós recomendados usar a opção mais popular e indicada: o MySQL, que se destaca por sua confiabilidade e facilidade de uso.

Neste tutorial, você aprendeu sobre alguns comandos básicos para executar diversas tarefas no MySQL, incluindo:

  • Como criar um usuário MySQL e conceder todos os privilégios a ele
  • Como conceder privilégios específicos a um usuário, revogá-los e remover completamente um usuário MySQL
  • Como ver que privilégios um usuário MySQL já possui

Boa sorte, e sinta-se livre para deixar um comentário abaixo se você tiver qualquer dúvida!

Author
O autor

Carlos E.

Carlos Estrella é formado em jornalismo pela UFSC e tem as funções de redator, tradutor e SEO na Hostinger Brasil. Já trabalhou com jornalismo de games e tecnologia e hoje aplica essa experiência escrevendo posts e tutoriais no blog da Hostinger. Suas paixões incluem games, dar rolês com a namorada e amigos e ler artigos aleatórios da Wikipédia de madrugada.