Como criar e gerenciar usuários do MySQL

Nesta página, veja como configurar a conta de usuário padrão e criar, excluir e atualizar outras contas de usuário em instâncias do Cloud SQL.

Para mais informações sobre como os usuários trabalham com o Cloud SQL, consulte Usuários do MySQL.

Antes de começar

Antes de concluir as tarefas desta página, você precisa criar a instância do Cloud SQL. Para saber mais, consulte o artigo Criar instâncias.

Se você planeja usar o cliente administrativo do banco de dados para gerenciar usuários, é necessário configurar:

Configurar a conta de usuário padrão

Ao criar uma nova instância do Cloud SQL, você precisa configurar a conta de usuário padrão antes de poder se conectar à instância.

No Cloud SQL para MySQL, o usuário padrão é root.

Para configurar o usuário padrão:

Console (2ª geração)

  1. Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud Platform.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique na instância para abrir a respectiva página "Visão geral".
  3. Selecione a guia Usuários.
  4. Localize o usuário root com o valor de host % (any host) e selecione Alterar senha no menu Mais ações Ícone mais ações..
  5. Defina uma senha forte que você vá se lembrar depois e clique em OK.

Console (primeira geração)

  1. Acesse a página "Instâncias do Cloud SQL" no Console do Google Cloud Platform.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique na instância da Primeira geração para abrir a página "Visão geral" correspondente.
  3. Selecione a guia Usuários.
  4. Se um usuário com Nome de usuário root e Nome de host %(any host) já for exibido na lista de usuários, não será preciso criar o usuário raiz.

    Para redefinir a senha, selecione Alterar senha no menu Mais ações Ícone mais ações..

  5. Caso contrário, clique em Criar conta de usuário.
  6. Na caixa de diálogo Criar conta de usuário, insira root como o nome de usuário e uma senha raiz forte da qual você consiga se lembrar. Deixe o nome do host definido como Allow any host(%).
  7. Clique em Criar.

gcloud

Defina a senha do usuário padrão:

gcloud sql users set-password root \
    --host=% --instance=[INSTANCE_NAME] --prompt-for-password

cURL

A solicitação a seguir usa o método users:update para atualizar a conta de usuário raiz ('root'@'%').

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "root", "password": "[PASSWORD]"}' \
     -X PUT \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=root&host=%25'

Criar um usuário

Para criar um usuário:

Console

  1. Acesse a página "Instâncias do Cloud SQL" no Console do Google Cloud Platform.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância para abrir a página "Visão geral" correspondente.
  3. Selecione a guia Usuários.
  4. Clique em Criar conta de usuário.
  5. Na caixa de diálogo Criar conta de usuário, especifique:
    • um Nome de usuário
    • uma Senha
    • opcionalmente, um host.

      O padrão é "%", que significa que a lista de hosts não é restrita. Também é possível fornecer um endereço IP ou intervalo de endereços IP, o que significa que apenas os usuários que se conectarem a partir desses endereços poderão acessar o banco de dados.

  6. Clique em Criar

Os usuários criados com o Cloud SQL têm todos os privilégios, exceto FILE e SUPER. Se você precisar alterar os privilégios de um usuário, use o comando GRANT ou REVOKE no cliente mysql.

gcloud

Crie o usuário:

gcloud sql users create [USER_NAME] \
   --host=[HOST] --instance=[INSTANCE_NAME] --password=[PASSWORD]

Os usuários criados com o Cloud SQL têm todos os privilégios, exceto FILE e SUPER. Se você precisar alterar os privilégios de um usuário, use o comando GRANT ou REVOKE no cliente mysql.

cURL

A solicitação a seguir usa o método users:insert para criar uma conta de usuário 'user_name'@'%'.

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"host": "%", "name": "[USER_NAME]", "password": "[PASSWORD]"}' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users

Os usuários criados com o Cloud SQL têm todos os privilégios, exceto FILE e SUPER. Se você precisar alterar os privilégios de um usuário, use o comando GRANT ou REVOKE no cliente mysql.

Cliente MySQL

  1. No prompt mysql, crie o usuário:
    CREATE USER '[USER_NAME]'@'%' IDENTIFIED BY '[PASSWORD]';
    
  2. Você pode confirmar a criação do usuário exibindo a tabela do usuário:
    SELECT user, host FROM mysql.user;
    
    Em uma instância de segunda geração, a saída é semelhante a este exemplo:
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | root     | %         |
    | newuser  | %         |
    +----------+-----------+
    1 row in set (0.01 sec)
    
  3. Forneça os privilégios ao usuário com a instrução GRANT. Para mais informações, consulte os Privilégios fornecidos pelo MySQL.
  4. Feche a tabela mysql.user para garantir que a alteração persista:
    FLUSH TABLES mysql.user;
    

Alterar uma senha de usuário

Para alterar uma senha de usuário:

Console

  1. Acesse a página "Instâncias do Cloud SQL" no Console do Google Cloud Platform.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância para abrir a página "Visão geral" correspondente.
  3. Selecione Controle de acesso > Usuários.
  4. Selecione o usuário que você quer atualizar e clique em "Mais ações" Ícone mais ações..
  5. Selecione Alterar senha, especifique uma nova senha e clique em OK.

gcloud

Atualize a senha:

gcloud sql users set-password [USER_NAME] \
   --host=[HOST] --instance=[INSTANCE_NAME] --prompt-for-password

cURL

A solicitação a seguir usa o método users:update para atualizar a senha da conta de usuário 'user_name'@'%''. Se seu usuário tiver um host diferente, você precisará modificar a chamada com o host correto.

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[USER_NAME]", "host": "%", "password": "[PASSWORD]"}' \
     -X PUT \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=[USER_NAME]&host=%25'

Cliente MySQL

  1. No prompt mysql, altere a senha:
    SET PASSWORD FOR [USER] = PASSWORD('auth_string');
    
  2. Feche a tabela mysql.user para garantir que a alteração persista:
    FLUSH TABLES mysql.user;
    

Atualizar usuários

Para atualizar as propriedades do usuário, como host ou privilégios, use o cliente mysql. Para mais informações, consulte Gerenciamento de conta de usuário do MySQL na documentação do MySQL.

Listar usuários

Para listar usuários:

Console

  1. Acesse a página "Instâncias do Cloud SQL" no Console do Google Cloud Platform.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância para abrir a página "Visão geral" correspondente.
  3. Selecione Controle de acesso > Usuários.

gcloud

Liste os usuários desta instância:

gcloud sql users list --instance=[INSTANCE_NAME]

Para ver uma lista completa de parâmetros desse comando, consulte a página de referência da lista de usuários do gcloud sql.

cURL

A seguinte solicitação usa o método users:list para listar os usuários definidos para uma instância.

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users

Cliente MySQL

No prompt mysql, liste os usuários do MySQL:

SELECT user, host FROM mysql.user;

Em uma instância de segunda geração com apenas a conta de usuário raiz configurada, a saída é semelhante a este exemplo:

+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
+------+-----------+
1 row in set (0.01 sec)

Este exemplo mostra os usuários de uma instância na qual o usuário 'root'@'%' foi adicionado. O campo da senha mostra o hash da senha.

Excluir usuários

Para excluir um usuário:

Console

  1. Acesse a página "Instâncias do Cloud SQL" no Console do Google Cloud Platform.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância para abrir a página "Visão geral" correspondente.
  3. Selecione Controle de acesso > Usuários.
  4. Selecione o usuário que você quer excluir e clique em "Mais ações" Ícone mais ações..
  5. Selecione Excluir e clique em OK.

gcloud

Excluir o usuário:

gcloud sql users delete [USER_NAME] --host=[HOST] --instance=[INSTANCE_NAME]

cURL

A solicitação a seguir usa o método users:delete para excluir a conta de usuário 'user_name'@'%'.

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[USER_NAME]", "host": "%"}' \
     -X DELETE \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?host=%25&name=[USER_NAME]'

Cliente MySQL

  1. No prompt mysql, exclua o usuário:
    DROP USER '[USER_NAME]'@'[HOST_NAME]';
    

    Para ver mais informações sobre a instrução DROP USER, consulte a documentação do MySQL.

  2. Feche a tabela mysql.user para garantir que a alteração persista:
    FLUSH TABLES mysql.user;
    

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para MySQL