Spread the love

Assim que você começa a usar o MySQL, você receberá um nome de usuário e uma senha. Essas credenciais iniciais lhe concedem “acesso root”. O usuário root tem acesso total a todos os bancos de dados e tabelas dentro desses bancos de dados.

Mas muitas vezes, você precisa dar o acesso do banco de dados para outra pessoa sem conceder-lhes o controle total. Por exemplo, as empresas contratam desenvolvedores para manter bancos de dados, mas não querem dar-lhes a capacidade de excluir ou modificar qualquer informação.

Muitas vezes, elas fornecem credenciais de um usuário não-root para evitar esse problema. Desta forma, a empresa pode manter o controle do que seus desenvolvedores podem e não podem fazer com os dados.

Nesta parte, vamos explicar como criar uma conta de usuário no MySQL e conceder todos os privilégios para o seu banco de dados. Num sentido prático, não é inteligente dar controle total para um usuário que não é do tipo root.

Contudo, ainda trata-se de um bom ponto de partida para aprender sobre privilégio de usuários. Para criar uma nova de usuário no MySQL, siga esses passos:

  1. Acesse a linha de comando e entre no servidor MySQL:
mysql
  1. O Script vai retornar este resultado, que verifica que você está acessando um servidor MySQL.
mysql>
  1. Então execute o seguinte comando:
CREATE USER 'novo_usuário'@'localhost' IDENTIFIED BY 'senha'; 
  1. novo_usuário é o nome que damos para a nossa nova conta de usuário e a seção IDENTIFIED BY ‘senha’ define um código de acesso para esse usuário. Você pode substituir esses valores com os seus próprios, desde que só altere o que está dentro das aspas.
  2. Para garantir todos os privilégios do banco de dados para um usuário recém-criado, execute o seguinte comando:
GRANT ALL PRIVILEGES ON * . * TO 'novo_usuario'@'localhost'; 
  1. Para que as mudanças tenham efeito, execute imediatamente um flush dos privilégios ao executar o seguinte comando:
FLUSH PRIVILEGES;

Assim que isso estiver feito, a sua nova conta de usuário vai ter o mesmo acesso ao banco de dados do que a conta antiga.

Como Conceder Privilégios para um Usuário MySQL de Maneira Separada

Nesta parte, vamos explicar como conceder privilégios de maneira separada para uma conta de usuário no MySQL.

Na hora de especificar o nome do banco de dados e o nome da tabela, separe-os por um . (ponto final) e não use espaços. Isso vai dar ao usuário root um controle refinado sobre determinados dados.

Também substitua o valor PERMISSION_TYPE com o tipo de acesso que você quer conceder para a sua nova conta de usuário.

Aqui estão os comandos mais usados no MySQL:

  • CREATE – permite que os usuários criem bancos de dados ou tabelas
  • SELECT – permite que os usuários recuperem dados
  • INSERT – permite que os usuários adicionem novas entradas em tabelas
  • UPDATE – permite que os usuários modifiquem entradas existentes em tabelas
  • DELETE – permite que os usuários excluam entradas da tabela
  • DROP – permite que usuários excluam tabelas de bancos de dados inteiras

Dica

Ao usar o tipo de permissão ALL PRIVILEGES, que mencionos anteriormente, você habilitará todas as permissões listadas acima.

Para usar qualquer uma dessas opções, basta substituir [tipo de permissão] com a palavra-chave apropriada. Para aplicar vários privilégios, separe-os com um comando como este. Por exemplo, podemos atribuir privilégios CREATE e SELECT para o usuário MySQL não-root com este comando:

GRANT CREATE, SELECT ON *. * TO 'nome_de_usuário'@'localhost';

Claro, você pode enfrentar uma situação onde você precisa revogar privilégios de um usuário. Você pode fazer isso usando o seguinte comando:

REVOKE [tipo de permissão] ON [nome do banco de dados].[Nome da tabela] FROM 'nome_de_usuário'@'localhost';

Por exemplo, para anular todos os privilégios para nosso usuário não-root, devemos usar:

REVOKE ALL PRIVILEGES ON nome_do_banco_de_dados.nome_da_tabela FROM 'nome_do_usuário'@'localhost';

Finalmente, você pode excluir completamente um usuário existente usando o seguinte comando:

DROP USER 'nome_do_usuário'@'localhost';

Dica

Lembre-se, você precisa ter acesso root para rodar qualquer um desses comandos. Garanta que você vai executar o comando FLUSH PRIVILEGES; antes de executar suas mudanças.

Como Exibir os Privilégios da Conta para um Usuário MySQL

Para descobrir quais privilégios já foram concedidos para um usuário MysQL, você pode usar o comando SHOW GRANTS:

SHOW GRANTS FOR 'nome_do_usuário'@'localhost';

O retorno dessa string será algo parecido com isso:

+—————————————————————————+

| Grants for user_name@localhost |

+—————————————————————————+

| GRANT USAGE ON *.* TO ‘user_name’@’localhost’ |

| GRANT ALL PRIVILEGES ON ‘database_name’.* TO ‘user_name’@’localhost’. |

| REVOKE ALL PRIVILEGES ON * . * FROM ‘user_name’@’localhost’; |

+—————————————————————————+

3 rows in set (0.00 sec)

Deseja saber mais sobre Bando de Dados Clique Aqui!

By Lucas Rodrigues Monteiro

Bacharel em Sistemas da Informação, Certificado MCTS 70-680 / MOS, Trabalho como Administrador de Redes, Firewall e Servidores Windows e Linux! Minhas atividades favoritas são: Caminhar, Fazer Trilhas, Natureza, Insetos e claro ler sobre Tecnologia.

Deixe um comentário

Translate »