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.
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
bashPara 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';
bashAo 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';
bashDepois de criar um novo usuário para o seu banco de dados, você deverá atribuir as devidas permissões a ele.
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';
bashPRIVILEGE
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';
bashVocê 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';
bashApó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;
bashConsidere 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';
bashPara 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';
bashJá para excluir um usuário do sistema, utilize o comando DROP
:
mysql> DROP USER 'username'@'localhost';
bashAntes 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