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.

Etapa 4: Alterar ou revogar os direitos de acesso de um usuário do MySQL

Se você quiser alterar ou revogar as permissões de um usuário do MySQL, você pode usar o comando REVOKE. O formato geral deste comando é o seguinte:

REVOKE privileges ON database.table FROM 'username''host';

Aqui, você deve substituir os privileges, database, table, username e host pelos valores correspondentes. privileges é o direito de acesso que você deseja alterar ou revogar do usuário. Você pode usar direitos de acesso específicos ou globais, conforme descrito anteriormente. database, table, username e host são os nomes de bancos de dados, tabelas, usuários e hosts aos quais você concedeu direitos de acesso anteriormente.

Por exemplo, se você deseja revogar permissões de DELETE de um usuário user1 em todas as tabelas em db1 banco de dados, você pode usar o seguinte comando:

REVOKE DELETE ON db1.* FROM '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 os direitos de acesso foram revogados 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 ON `db1`.* TO `user1``%` |
+--------------------------------------------------------------+
2 rows in set (0.00 sec)

Aqui, você pode ver que DELETE direitos de acesso foram revogados de usuários user1 em todas as tabelas db1 banco de dados.

Etapa 5: Excluir usuários do MySQL

Se você quiser excluir um usuário do MySQL, você pode usar o comando DROP USER. O formato geral deste comando é o seguinte:

DROP USER 'username''host';

Aqui, você precisará substituir o username e o host pelo nome de usuário e host que deseja remover. Esse comando exclui o usuário e todas as permissões que ele tem.

Por exemplo, se você deseja excluir um usuário user1, você pode usar o seguinte comando:

DROP USER '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 um usuário foi excluído 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 |
+------------------+-----------+
3 rows in set (0.00 sec)

Aqui, você pode ver que user1 usuário foi removido da lista de usuários do MySQL.

Conclusão

O MySQL tem vários comandos úteis para gerenciar usuários e direitos de acesso. Usando esses comandos, você pode organizar seu banco de dados MySQL melhor e com mais segurança.

Espero que você ache este artigo útil. Obrigado pela leitura.

Últimos artigos