Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

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


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.