MySQL create user: Como criar usuário no MySQL

Para criar um novo usuário no MySQL, você precisará obter o devido acesso ao banco de dados, além de ter privilégios de administrador ou de superusuário. Somente assim será possível abrir e excluir contas, e gerenciar permissões. Ao criar um novo usuário, você também terá de definir os respectivos privilégios de acesso: de leitura, de gravação ou de direitos administrativos.

Criar usuário no MySQL com o comando MySQL CREATE USER

Durante o processo de instalação do sistema de gerenciamento de banco de dados, o MySQL gera automaticamente uma conta raíz, também chamada de conta root. Ao utilizá-la, você terá controle total sobre o seu banco de dados, sobre as tabelas e sobre todos os usuários cadastrados, para um melhor gerenciamento.

Dica

Se você precisa de ajuda para instalar e começar a mexer nesse banco de dados, acesse o tutorial MySQL do nosso Digital Guide.

Ao acessar o seu sistema com a sua conta raíz, você conseguirá criar outras contas de usuário no MySQL, assim como atribuir a elas os devidos privilégios de acesso. É importante que você saiba que, em sistemas operacionais Ubuntu com o MySQL 5.7 ou uma versão mais recente, essaa conta raíz será configurada, por padrão, para ser autenticada pelo método de autenticação auth_socket e não por senha, como geralmente ocorre. Dessa forma, o nome do usuário que está tentando acessar o MySQL deverá corresponder ao nome do usuário do sistema operacional host no qual o MySQL está sendo executado. Ainda, você precisará fazer uso do comando sudo para conseguir se conectar à sua conta raíz, como mostra o exemplo:

$ sudo mysql
bash

Para criar um novo usuário, você deverá utilizar o comando do MySQL CREATE USER, seguido de algumas especificações, como mostra o exemplo que se segue. As especificações permitirão a configuração de novos usuários com nome e senha próprios:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
bash

Ao usar o comando MySQL CREATE USER, substitua username pelo nome de usuário que deseja configurar. Em seguida, especifique o nome do host de onde o novo usuário se conectará, fazendo a substituição do item host. Se o usuário só puder obter o devido acesso do Ubuntu Server local, faça a substituição por `localhost.

Quando você estiver explorando as possibilidades de métodos de autenticação, se deparará com variadas opções: o auth_socket, por exemplo, oferece um alto nível de segurança, pois exige que seus usuários insiram uma senha para obterem acesso ao banco de dados. Por outro lado, ele impede conexões remotas, o que pode resultar em mais esforços de sua parte, caso você precise que programas externos interajam com o MySQL. Como alternativa, você pode omitir o trecho do comando WITH authentication_plugin, o que fará com que usuários possam se autenticar pelo método padrão do MySQL, caching_sha2_password. Se você preferir essa configuração, terá de usar o seguinte comando MySQL CREATE USER:

mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
bash

Depois de criar um novo usuário para o seu banco de dados, você deverá atribuir as devidas permissões a ele.

Nomes de domínio por US$ 1

Registre ótimos TLDs por menos de US$ 1 no primeiro ano. Esperar para quê? Garanta seu nome de domínio preferido hoje mesmo.

  • E-mail correspondente
  • Certificado SSL
  • Suporte 24 horas por dia, 365 dias por ano

Atribuir privilégios de usuário

Não basta que você crie um novo usuário no MySQL com o comando MySQL CREATE USER. Além desse, outros comandos devem ser usados para a configuração dos respectivos privilégios de acesso, passo de extrema importância para a segurança do seu banco de dados. Para atribuir as devidas permissões ao usuário criado, ou a qualquer outro usuário, utilize o comando abaixo:

mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
bash

PRIVILEGE determina as ações que o usuário em questão poderá executar, tanto no banco de dados quanto nas tabelas especificadas. Explore outras funções dessa sintaxe, substituindo o valor por:

  • CREATE: Permite que o respectivo usuário crie um banco de dados ou uma tabela.
  • SELECT: Permite que um usuário recupere dados.
  • INSERT: Permite que um usuário adicione novas entradas em tabelas.
  • UPDATE: Permite que um usuário altere entradas existentes em tabelas.
  • DELETE: Permite que um usuário exclua entradas em tabelas.
  • DROP: Permite que um usuário exclua tabelas inteiras do banco de dados.

Para facilitar o trabalho, você também pode conceder vários privilégios a um novo usuário de uma só vez. Para isso, separe privilégios por vírgula, como mostra o exemplo a seguir:

mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'host';
bash

Você também pode conceder privilégios que abranjam todos os bancos de dados e tabelas utilizando um único comando. Basta que você substitua os respectivos nomes de bancos de dados e de tabelas por *. Por exemplo, o comando abaixo concede, a um usuário, permissão para consultar dados (SELECT), permissão para adicionar novas entradas (INSERT) e permissão para modificar entradas existentes (UPDATE), em todos os bancos de dados e tabelas. Veja:

mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO 'username'@'host';
bash

Após executar os comandos MySQL CREATE USER e MySQL GRANT, você poderá atualizar o banco de dados com o comando FLUSH PRIVILEGES. Ele recarregará todas as tabelas de permissões, garantindo que os novos privilégios entrem em vigor:

mysql> FLUSH PRIVILEGES;
bash

Considere conceder, aos usuários criados, somente as permissões que eles realmente precisam. Conferir controle total a um ou mais usuários representa um alto risco de segurança.

Revogar privilégios de usuário

Para revogar permissões de acesso de um usuário do seu banco de dados, você deverá executar o comando REVOKE. A sintaxe dele é semelhante à do comando GRANT, mas, nesse caso, você terá de digitar FROM ao invés de TO:

mysql> REVOKE type_of_permission ON database_name.table_name FROM 'username'@'host';
bash

Para visualizar as permissões em vigor para um usuário, faça uso do comando SHOW GRANTS, como mostra o código:

mysql> SHOW GRANTS FOR 'username'@'host';
bash

Já para excluir um usuário do sistema, utilize o comando DROP:

mysql> DROP USER 'username'@'localhost';
bash

Antes de executar o comando DROP, contudo, tenha certeza do que você está fazendo, principalmente se o usuário a ser excluído se tratar de alguém com privilégios administrativos. A exclusão errônea de um usuário pode acarretar perdas acidentais de dados.

Depois de criar um novo usuário com o comando MySQL CREATE USER, configurar privilégios de acesso com o comando MySQL GRANT seguido dos respectivos valores, e administrar as permissões em vigor, você poderá encerrar o cliente MySQL da seguinte forma:

mysql> exit
bash
Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top