Como criar um novo usuário MySQL e conceder direitos de acesso através da linha de comando

MySQL é um sistema de gerenciamento de banco de dados relacional popular e amplamente utilizado para várias aplicações web. Uma das tarefas importantes que os administradores de banco de dados têm que executar é criar novos usuários do MySQL e conceder-lhes os direitos de acesso apropriados.

Direitos de acesso ou privileges são regras que definem o que um usuário pode fazer com um banco de dados, tabela, coluna ou outro objeto. Ao conceder direitos de acesso adequados, você pode melhorar a segurança e o desempenho do banco de dados.

Neste artigo, Bardimin discutirá como criar um novo usuário MySQL e conceder direitos de acesso através da linha de comando. Bardimin também discutirá alguns comandos do MySQL que são úteis para gerenciar usuários e direitos de acesso.

Passo 1: Faça login no MySQL como Root

Antes de criar um novo usuário MySQL ou conceder permissões, você deve estar conectado ao MySQL como o usuário root ou outro usuário que tenha GRANT direitos de acesso. O usuário root é o usuário que tem direitos de acesso total a todos os bancos de dados e objetos MySQL. Você pode fazer login no MySQL como root usando o seguinte comando:

mysql -u root -p

Este comando solicitará que você insira a senha de root que você criou ao instalar o MySQL. Depois de inserir a senha correta, você verá um prompt do MySQL como este:

mysql>

Etapa 2: Criar um novo usuário do MySQL

Depois de fazer login no MySQL como root, você pode criar um novo usuário do MySQL usando o comando CREATE USER. O formato geral deste comando é o seguinte:

CREATE USER 'username''host' IDENTIFIED BY 'password';

Aqui, você precisa substituir os username, host e password pelos valores correspondentes. username é o nome do usuário que você deseja criar. host é o nome do host ou endereço IP a partir do qual um usuário pode se conectar ao MySQL.

Você pode usar % para indicar que os usuários podem se conectar de qualquer lugar, ou você pode restringir os usuários a se conectarem apenas de hosts específicos. password é a senha que você deseja definir para o usuário.

Por exemplo, se você deseja criar um usuário chamado user1 que pode se conectar de qualquer lugar com uma senha pass1, você pode usar o seguinte comando:

CREATE USER 'user1''%' IDENTIFIED BY 'pass1';

Se o comando for bem-sucedido, você verá uma mensagem como esta:

Query OK, 0 rows affected (0.01 sec)

Você pode verificar se o usuário foi criado corretamente usando o comando SELECT na tabela mysql.user:

SELECT User, Host FROM mysql.user;

Este comando exibirá todos os usuários existentes do MySQL e seus hosts. Você deve ver resultados como este:

+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| user1 | % |
+------------------+-----------+
4 rows in set (0.00 sec)

Aqui, você pode ver que user1 usuário foi criado com o host %.

Etapa 3: Conceder direitos de acesso a novos usuários do MySQL

Depois de criar um novo usuário do MySQL, você deve conceder as permissões apropriadas para esse usuário. Você pode conceder permissões usando o comando GRANT. O formato geral deste comando é o seguinte:

GRANT privileges ON database.table TO 'username''host';

Aqui, você deve substituir os privileges, database, table, username e host pelos valores correspondentes. privileges é o direito de acesso que você deseja conceder a um usuário. Você pode conceder direitos de acesso específicos, como SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE, GRANT OPTION e muito mais.

Você também pode conceder direitos de acesso global, como ALL PRIVILEGES ou ALL que inclui todos os direitos de acesso existentes. database é o nome do banco de dados ao qual você deseja conceder direitos de acesso. Você pode usar * para mostrar todos os bancos de dados. table é o nome da tabela à qual você deseja conceder direitos de acesso. Você também pode usar * para mostrar todas as tabelas. username e host são nomes de usuário e hosts que você criou antes.

Por exemplo, se você quiser conceder direitos de acesso SELECT, INSERT, UPDATE e DELETE aos usuários user1 em todas as tabelas db1 banco de dados, poderá usar o seguinte comando:

GRANT SELECT, INSERT, UPDATE, DELETE ON db1.* TO 'user1''%';

Se o comando for bem-sucedido, você verá uma mensagem como esta:

Query OK, 0 rows affected (0.01 sec)

Você pode verificar se as permissões foram concedidas corretamente usando o comando SHOW GRANTS:

SHOW GRANTS FOR 'user1''%';

Esse comando exibirá todos os direitos de acesso de propriedade do usuário user1. Você deve ver resultados como este:

+--------------------------------------------------------------+
| Grants for user1% |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `user1``%` |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `db1`.* TO `user1``%`|
+--------------------------------------------------------------+
2 rows in set (0.00 sec)

Aqui, você pode ver que user1 usuário tem direitos de acesso SELECT, INSERT, UPDATE e DELETE em todas as tabelas db1 banco de dados.

Últimos artigos