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.
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.
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:
- 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.
- 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.
- FLUSH PRIVILEGES;
Suas alterações estarão em vigor.
Aqui está uma lista curta de outras permissões comuns possíveis das quais os usuários podem usufruir.
SELECT
para ler os bancos de dadosDe forma a fornecer uma permissão a um usuário específico, utilize este framework:
- 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:
- 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:
- 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:
- DROP USER 'username'@'localhost';
Para testar seu novo usuário, faça o logoff digitando:
- quit
e faça login novamente com este comando no terminal:
- mysql -u [username] -p
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.
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!
Post muito bom! Me ajudou! Obrigado!
post perfeito, me ajudou muito, Obrigado.
Parabéns pelo post. Muito bacana.
Excelente artigo … Ajudou muito. Muito obrigado. Felicidade!
Amei este artigo!
Excelente post, me ajudou muito.
Boa tarde Ilustre, estou com dificuldade de criar o banco de dados. preciso de ajuda.