MySQL é um sistema de gerenciamento de banco de dados popular e amplamente utilizado que armazena e organiza dados e permite que os usuários os recuperem. Ele vem com uma vasta gama de opções que concedem aos usuários certas permissões para tabelas e bancos de dados.
Neste guia, você aprenderá como criar um novo usuário e conceder permissões no MySQL base de dados.
Como criar um novo usuário no MySQL
Para criar um novo usuário, primeiro faça login no shell do MySQL.
$ sudo mysql -u root -p
Forneça a senha sudo seguida pela senha fornecida ao configurar o banco de dados MySQL e pressione ENTER . Depois disso, você receberá esse prompt.
Para criar um novo usuário, use a sintaxe mostrada abaixo:
MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Por exemplo, para criar um novo usuário chamado 'tecmint ’ dentro do banco de dados, invoque o comando:
MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';
Alguns pontos a serem lembrados
Ao adicionar um usuário localmente, ou seja, no sistema que você instalou o MySQL , o host do usuário é especificado como localhost , e não o endereço IP. A palavra-chave ‘localhost ' traduz para 'este computador ' e o MySQL o trata de forma exclusiva. Basicamente, localhost é usado pelo cliente mysql para estabelecer uma conexão com o servidor de banco de dados MySQL instalado localmente.
Até agora, o tecmint usuário não tem nenhuma permissão para interagir com os bancos de dados. Na verdade, o usuário não pode nem mesmo acessar o shell do MySQL.
Para conceder ao usuário acesso total a todos os bancos de dados, incluindo as tabelas, execute.
MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';
No comando acima, os asteriscos apontam para o banco de dados e a tabela respectivamente que o usuário pode acessar. Ele concede ao usuário todos os direitos sobre o banco de dados – ler , escrever , editar, e executar incluindo a execução de todas as tarefas em outros bancos de dados e tabelas também.
Até agora, concedemos ao usuário acesso total ao banco de dados. Embora isso seja útil para explicar os conceitos do MySQL, geralmente não é recomendado, pois pode representar um risco de segurança para seus bancos de dados. Basta pensar no que poderia acontecer se um hacker conseguisse a senha do usuário. Continuaremos e discutiremos como atribuir permissões específicas na próxima seção.
Quando terminar de atribuir permissões ao usuário, recarregue todos os privilégios conforme mostrado para que as alterações entrem em vigor.
MariaDB [none]> FLUSH PRIVILEGES
Como conceder diferentes permissões de usuário
Aqui está um detalhamento das possíveis permissões que você pode conceder aos usuários:
- TODOS OS PRIVILÉGIOS – Como visto anteriormente, isso concede a um usuário MySQL acesso total a um banco de dados específico.
- CRIAR – Permite que os usuários criem novos bancos de dados ou tabelas.
- DEIXAR – Permite que os usuários excluam bancos de dados ou usuários.
- INSERIR – Permite que os usuários insiram linhas em tabelas.
- EXCLUIR – Permite que os usuários excluam linhas de tabelas.
- SELECIONAR – com permissão ‘SELECT’, os usuários podem ler o conteúdo de uma tabela.
- ATUALIZAÇÃO – Permite que os usuários atualizem as linhas em uma tabela.
- OPÇÃO DE CONCESSÃO – Os usuários podem conceder ou remover os privilégios de outros usuários.
Para conceder permissão a um usuário específico, use a sintaxe:
MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';
Além disso, você pode atribuir permissões a todas as tabelas em um banco de dados com um único símbolo de asterisco, conforme mostrado:
MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';
Por exemplo, para atribuir SELECT permissões para 'tecmint ‘ usuário em todas as tabelas do banco de dados testdb , execute o comando.
MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';
Em seguida, libere os privilégios para que as alterações entrem em vigor.
MariaDB [none]> FLUSH PRIVILEGES;
Além disso, você pode atribuir várias permissões de uma só vez, separando-as com uma vírgula, conforme mostrado.
MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';
Como revogar permissões do MySQL
Para revogar permissões de um usuário, use a sintaxe:
MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';
Por exemplo, para revogar INSERIR permissões do usuário ‘tecmint ’, execute o comando.
MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost'; MariaDB [none]> FLUSH PRIVILEGES
Para dar uma olhada nas permissões atuais de um usuário, execute:
MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';
A partir da saída abaixo, podemos ver que o INSERT permissão foi eliminada do 'tecmint ’ usuário deixando apenas SELECT e ATUALIZAR direitos no testdb base de dados.
Para testar o login no shell do MySQL usando o novo usuário, primeiro faça o logout.
MariaDB [none]> quit;
Em seguida, faça login novamente.
$ sudo mysql -u tecmint -p
Forneça a senha do usuário e pressione ENTER para acessar o shell.
Para descartar um usuário, use o DROP comando, assim como você faria ao excluir um banco de dados.
MariaDB [none]> DROP USER 'username'@'localhost';
Você também pode gostar de ler os seguintes artigos relacionados ao MySQL:
- Dicas úteis para solucionar erros comuns no MySQL
- Mytop – Uma ferramenta útil para monitorar o desempenho do MySQL/MariaDB no Linux
- Como alterar a porta padrão do MySQL/MariaDB no Linux
- Como redefinir a senha raiz do MySQL ou MariaDB no Linux
Conclusão
Espero que agora você possa criar usuários em seus servidores de banco de dados MySQL e atribuir ou revogar permissões confortavelmente.