Como criar e gerenciar usuários do PostgreSQL

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 informações sobre como os usuários trabalham com o Cloud SQL, consulte Usuários do PostgreSQL.

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 Como configurar a conta padrão.

Além disso, você precisa 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 PostgreSQL, o usuário padrão é postgres.

Para configurar o usuário padrão:

Console

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

    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. Encontre o usuário postgres e selecione Alterar senha no menu "Mais ações" Ícone .
  5. Forneça uma senha forte, de que se lembre posteriormente, e clique em Ok.

gcloud

Defina a senha do usuário padrão:

    gcloud sql users set-password postgres \
        --instance=[INSTANCE_NAME] --prompt-for-password
    

REST

Na solicitação a seguir, o método users:update é usado para atualizar o usuário postgres.

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

Como 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.

    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
  6. Clique em Criar.

Os usuários criados com o Cloud SQL têm os privilégios associados ao papel cloudsqlsuperuser: CREATEROLE, CREATEDB e LOGIN. Se você precisar alterar os atributos de um usuário, use o comando ALTER ROLE (em inglês) no cliente psql.

gcloud

Crie o usuário:

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

Os usuários criados com o Cloud SQL têm os privilégios associados ao papel cloudsqlsuperuser: CREATEROLE, CREATEDB e LOGIN. Se você precisar alterar os atributos de um usuário, use o comando ALTER ROLE (em inglês) no cliente psql.

REST

Na solicitação a seguir, o método users:insert é usado para criar uma conta de usuário "user_name".

    gcloud auth application-default login
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"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 os privilégios associados ao papel cloudsqlsuperuser: CREATEROLE, CREATEDB e LOGIN. Se você precisar alterar os atributos de um usuário, use o comando ALTER ROLE (em inglês) no cliente psql.

Cliente psql

  1. No prompt psql, crie o usuário:
          CREATE USER [USER_NAME] WITH [ATTRIBUTE1] [ATTRIBUTE2]...;
          \password [USER_NAME];
          

    Digite a senha quando solicitada.

    Para mais informações sobre os atributos de papéis, consulte a documentação do PostgreSQL (em inglês).

  2. Confirme a criação do usuário exibindo a tabela do usuário:
          SELECT * FROM pg_roles;
          

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.

    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] \
       --instance=[INSTANCE_NAME] --prompt-for-password
    

REST

Na solicitação a seguir, o método users:update é usado para atualizar a senha da 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]", "password": "[PASSWORD]"}' \
         -X PUT \
         'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=[USER_NAME]'
    

Cliente psql

  1. No prompt psql, altere a senha:
        \password [USER];
        

    Digite a senha quando solicitada.

Como atualizar usuários

Para atualizar as propriedades do usuário, como atributos, você precisa usar o cliente psql. Para mais informações, consulte Papéis de banco de dados (em inglês) na documentação do PostgreSQL.

Como listar usuários

Para listar usuários:

Console

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

    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 psql

No prompt psql, liste os usuários do PostgreSQL:

    SELECT * FROM pg_roles;
    

Como excluir usuários

Para excluir um usuário:

Console

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

    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

Exclua o usuário:

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

O parâmetro host é ignorado. Forneça qualquer valor.

REST

Na solicitação a seguir, o método users:delete é usado para excluir a conta de usuário especificada.

    gcloud auth application-default login
    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=&name=[USER_NAME]'
    

Cliente psql

  1. No prompt psql, exclua o usuário:
        DROP ROLE [USER_NAME];
        

    Para mais informações sobre a instrução DROP ROLE, consulte a documentação do PostgreSQL (em inglês).

A seguir