Report this

What is the reason for this report?

Como criar um novo usuário e atribuir permissões no MySQL

Published on December 3, 2014
Português
Como criar um novo usuário e atribuir permissões no MySQL

Introdução

O MySQL é um software de gerenciamento de banco de dados de código aberto que ajuda os usuários a armazenar, organizar e posteriormente recuperar dados. Ele possui diversas opções para garantir a usuários específicos permissões dentro de tabelas e bancos de dados — este tutorial irá oferecer uma visão geral de algumas das muitas opções.

O que os Destaques significam

Ao longo deste tutorial, toda linha que o usuário precisar inserir ou personalizar estará destacada! O restante pode ser em grande parte simplesmente copiado e colado.

Como criar um novo usuário

Na parte 1 do Tutorial do MySQL, fizemos toda a edição no MySQL como o usuário root, com acesso total a todos os bancos de dados. No entanto, em casos em que mais restrições possam ser necessárias, existem maneiras de criar usuários com permissões personalizadas.

Vamos começar criando um novo usuário dentro do shell do MySQL:

  1. CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Nota: ao adicionar usuários dentro do shell do MySQL neste tutorial, vamos especificar o host do usuário como sendo localhost e não o endereço IP do servidor. localhost é um nome de host que significa “este computador”, e o MySQL trata esse nome de host em particular de forma especial: quando um usuário com esse host entra no MySQL, ele irá tentar se conectar ao servidor local usando um arquivo soquete do Unix. Dessa forma, o localhost é normalmente usado quando o plano é conectar-se via protocolo SSH em seu servidor ou quando você estiver executando o cliente mysql local para se conectar ao servidor MySQL local.

Neste ponto, newuser não possui permissões para fazer nada com os bancos de dados. Na verdade, mesmo se newuser tentar fazer login (com a senha password), ele não será capaz de chegar ao shell do MySQL.

Portanto, a primeira coisa a ser feita é fornecer ao usuário o acesso às informações que eles irão precisar.

  1. GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Os asteriscos neste comando referem-se ao banco de dados e tabela (respectivamente) que ele pode acessar — este comando específico permite que o usuário leia, edite, execute e realize todas as tarefas em todos os bancos de dados e tabelas.

Observe que, nesse exemplo, estamos concedendo ao newuser acesso root completo a tudo em nosso banco de dados. Embora isso seja útil para explicar alguns conceitos do MySQL, pode ser impraticável para a maioria dos casos de uso e pode colocar a segurança do seu banco de dados em grande risco.

Depois de finalizar com as permissões que deseja configurar para seus novos usuários, sempre se certifique de recarregar todos os privilégios.

  1. FLUSH PRIVILEGES;

Suas alterações estarão em vigor.

Como atribuir permissões de usuário distintas

Aqui está uma lista curta de outras permissões comuns possíveis das quais os usuários podem usufruir.

  • ALL PRIVILEGES — como vimos anteriormente, isso garante ao usuário do MySQL acesso completo a um banco de dados (ou, se nenhum banco de dados for selecionado, acesso global a todo o sistema)
  • CREATE — permite criar novas tabelas ou bancos de dados
  • DROP — permite deletar tabelas ou bancos de dados
  • DELETE — permite excluir linhas de tabelas
  • INSERT — permite inserir linhas em tabelas
  • SELECT - permite usar o comando SELECT para ler os bancos de dados
  • UPDATE — permite atualizar linhas de tabelas
  • GRANT OPTION — permite conceder ou remover privilégios de outros usuários

De forma a fornecer uma permissão a um usuário específico, utilize este framework:

  1. GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';

Se quiser conceder-lhe acesso a todos os bancos de dados ou tabelas, certifique-se de colocar um asterisco (*) no lugar do nome do banco de dados ou nome da tabela.

Toda vez que você atualizar ou alterar uma permissão, certifique-se de usar o comando Flush Privileges.

Se precisar revogar uma permissão, a estrutura é quase idêntica àquela da concessão:

  1. REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';

Observe que ao revogar permissões, a sintaxe requer a utilização do FROM ao invés do TO, que usamos ao conceder permissões.

É possível revisar as permissões atuais de um usuário executando o seguinte:

  1. SHOW GRANTS FOR 'username'@'localhost';

Da mesma forma como é possível deletar bancos de dados com DROP, também é possível usar o DROP para excluir um usuário completamente:

  1. DROP USER 'username'@'localhost';

Para testar seu novo usuário, faça o logoff digitando:

  1. quit

e faça login novamente com este comando no terminal:

  1. mysql -u [username] -p

Conclusão

Depois de completar este tutorial, você deve ter uma ideia de como adicionar novos usuários e conceder-lhes uma variedade de permissões em um banco de dados do MySQL. A partir daqui, se quiser, continue explorando e experimentando diferentes configurações de permissões para seu banco de dados, ou aprenda mais sobre algumas configurações do MySQL de nível superior.

Para mais informações sobre os princípios básicos do MySQL, recomendados a leitura dos seguintes tutoriais:

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the author(s)

Etel Sverdlov
Etel Sverdlov
Author
See author profile

Former Director of Community at DigitalOcean. Expert in cloud topics including LAMP Stack, CentOS, Ubuntu, MySQL, SSL certificates, and more.

Fernando Pimenta
Fernando Pimenta
Translator
See author profile

I’m a consultant and technical expert in Linux, Datacenter, and Cloud. I've been worked with Customer Support because I love helping people.

Category:
Tags:

Still looking for an answer?

Was this helpful?
Leave a comment...

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Amei este artigo!

Excelente artigo … Ajudou muito. Muito obrigado. Felicidade!

Parabéns pelo post. Muito bacana.

post perfeito, me ajudou muito, Obrigado.

Post muito bom! Me ajudou! Obrigado!

Boa tarde Ilustre, estou com dificuldade de criar o banco de dados. preciso de ajuda.

Excelente post, me ajudou muito.

Creative CommonsThis work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 4.0 International License.
Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.