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.
Conteúdo
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:
- Acesse a linha de comando e entre no servidor MySQL
:
mysql
- O Script vai retornar este resultado, que verifica que você está acessando um servidor MySQL.
mysql>
- Então execute o seguinte comando
:
CREATE USER 'novo_usuário'@'localhost' IDENTIFIED BY 'senha';
- 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.
- 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';
- 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!
Comentários
August 04 2021
Me ajudou, mas uns erros. nesse linha: GRANT CREATE, SELECT ON *. * Para 'nome_de_usuário' @ 'localhost'; Tentei executar aqui e percebi que tinha a palavra Para em vez de TO também tem espaço nesse trecho 'nome_de_usuário' @ 'localhost' deve ser 'nome_de_usuário'@'localhost'; De qualquer forma me ajudou e muito, tava precisando criar um usuário para para CRUD e não fazia ideia de como fazer. Acho que dar apenas as permissões necessárias deixa o sistema mais seguro.
August 05 2021
Obrigado pelo aviso! Já arrumei aqui essas linhas. Ficamos felizes em ajudar o seu projeto!
August 09 2024
Bom dia pessoal Tenho um problema preciso de ajuda,Após de Criar usuários e atribuir privilégios , cheguei de digitar o comando (revoke all privileges on*.*to 'root'@'localhost';) desta forma perdi todos os privilégio. Gostaria de saber se há um comando que pode me devolver todos os privilégio? Foi um erro de ter digitalizado , quero saber se há um procedimento para retificar este erro?
August 31 2024
Bom dia, Manassés! Para restaurar os privilégios do usuário root após o comando REVOKE, conecte-se ao MySQL como administrador usando sudo mysql -u root -p e execute GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; seguido de FLUSH PRIVILEGES;. Isso deve resolver o problema. Se precisar de mais ajuda, me avise! ?
January 26 2022
Parabéns pelo artigo! Você disse que é jornalista mas, pela qualidade técnica do artigo, pensei que era programador.
January 28 2022
Muito obrigado, Cristiano! Mas tenho que admitir que nossa equipe técnica manda muito bem e nos ajuda mto ?
February 14 2022
Ótimo, me ajudou bastante
May 19 2023
Sendo assim, você deve apresentar as instruções SQL, utilizando a sintaxe do SGBD MySQL, propondo uma solução que conceda os privilégios aos usuários, utilizando os recursos de forma otimizada. Considere que os usuários (DENT01, DENT02, DENT03, SEC01, TEC01, TEC02) já estão criados. queria uma ajuda nessa questão da minha pós,
May 26 2023
Oi, Almir! Me parece que estão faltando algumas informações nessa questão, não?