Como criar e gerenciar usuários do MySQL

Esta página mostra instruções para instâncias do Cloud SQL:

  • Configurar a conta de usuário padrão.
  • Criar, excluir e atualizar outras contas de usuário.

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 abaixo, crie uma instância do Cloud SQL. Para saber mais, consulte o artigo Criar instâncias.

Se você planeja usar o cliente administrativo de seu banco de dados para gerenciar usuários, você deve ter configurado o usuário padrão na instância. Para mais informações, consulte Configurar a conta padrão.

Além disso, você deve ter configurado um cliente administrativo conectado à sua instância. Para mais informações, consulte Opções de conexão para aplicativos externos.

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 Google Cloud Console.

    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 um valor de Host de % (any host) e selecione Alterar senha no menu mais ações Ícone mais ações..
  5. Forneça uma senha forte, de que se lembre posteriormente, e clique em Ok.

Console (primeira geração)

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

    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 um Nome de usuário root e um nome de Host %(any host) já estiver sendo mostrado na lista de usuários, não será necessário criar um 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, digite root para o nome de usuário e uma senha de raiz forte que você possa 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
    

REST

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

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth 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 Google Cloud Console.

    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.

REST

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

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth 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. Limpe 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 Google Cloud Console.

    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 a ser atualizado 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
    

REST

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ê deverá modificar a chamada com o host correto.

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth 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. Limpe 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 Google Cloud Console.

    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.

REST

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

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth 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 Google Cloud Console.

    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 a ser excluído 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]
    

REST

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

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth 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 obter mais informações sobre o estado DROP USER, consulte a documentação do MySQL.

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

A seguir