Faça a gestão de utilizadores do PostgreSQL com a autenticação integrada

Esta página descreve como criar, gerir e remover funções, utilizadores e grupos do PostgreSQL e do AlloyDB for PostgreSQL através dos métodos de autenticação incorporados do PostgreSQL baseados em palavras-passe.

Crie utilizadores do PostgreSQL no AlloyDB

Quando cria utilizadores do PostgreSQL, estes começam apenas com o privilégio LOGIN. Para mais informações acerca destes privilégios, consulte o artigo CREATE USER.

Pode alterar os privilégios de qualquer utilizador através do comando ALTER ROLE. Se criar um novo utilizador com o cliente psql, pode optar por associá-lo a uma função diferente ou atribuir-lhe privilégios diferentes.

Gerir utilizadores

Pode criar e gerir utilizadores do AlloyDB com a Google Cloud CLI ou através de comandos do PostgreSQL. As secções seguintes demonstram tarefas comuns de gestão de utilizadores através de qualquer um dos métodos.

Antes de começar

Para usar comandos do PostgreSQL para gerir utilizadores num cluster, precisa do seguinte:

  • Acesso ao cliente psql
  • Acesso ao utilizador da base de dados postgres ou a outra função de utilizador com os privilégios administrativos adequados

Para usar a Google Cloud consola ou a Google Cloud CLI para gerir utilizadores num cluster, esse cluster tem de ter uma instância principal. Se o cluster não tiver uma instância principal, tem de criar uma antes de poder gerir utilizadores.

Crie um utilizador da base de dados

Para criar um utilizador da base de dados que se autentique diretamente com a base de dados através de um nome de utilizador e uma palavra-passe, também conhecida como autenticação integrada, siga os passos nesta secção.

Em alternativa, para criar um utilizador da base de dados que use a gestão de identidade e de acesso (IAM) para autenticar, consulte o artigo Faça a gestão da autenticação IAM.

Consola

  1. Aceda à página Clusters.

    Aceda a Clusters

  2. Clique no nome do cluster ao qual quer adicionar um utilizador.

  3. Clique em Utilizadores.

  4. Clique em Adicionar conta de utilizador.

  5. Deixe a opção Autenticação incorporada selecionada.

    Se quiser usar o IAM para autenticar e iniciar sessão nos seus clusters de base de dados, tem de concluir passos adicionais para preparar o seu projeto e conceder as autorizações adequadas ao novo utilizador. Para mais informações, consulte o artigo Faça a gestão da autenticação do IAM.

  6. Introduza um nome de utilizador e uma palavra-passe para o novo utilizador.

  7. Para atribuir funções diferentes da função alloydbsuperuser predefinida ao utilizador, siga estes passos:

    1. Introduza o nome da função em Funções.
    2. Para adicionar a função, prima Enter ou Tab.
    3. Selecione x para qualquer função que queira remover para esse utilizador.

      Para mais informações, consulte o artigo Funções predefinidas.

  8. Clique em Adicionar.

psql

CREATE USER USERNAME WITH PASSWORD PASSWORD;

Para mais informações sobre como criar e definir utilizadores da base de dados, consulte o artigo CREATE USER.

Depois de criar um utilizador, pode alterar os respetivos privilégios através do comando ALTER ROLE no cliente psql.

gcloud

Use o seguinte comando gcloud alloydb users create:

gcloud alloydb users create USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID

Substitua as seguintes variáveis:

  • USERNAME: nome de utilizador do utilizador. USERNAME tem de seguir as regras para identificadores SQL: sem carateres especiais ou entre aspas duplas. Por exemplo, db_user_1.

  • PASSWORD: palavra-passe do utilizador. Para criar o utilizador sem uma palavra-passe, omita este argumento.

  • CLUSTER_ID: ID do cluster ao qual o utilizador vai ser adicionado.

  • REGION_ID: ID da região onde o cluster reside. Por exemplo, us-central1.

Depois de criar um utilizador, pode alterar os respetivos privilégios através do comando gcloud alloydb users set-roles.

Além disso, pode conceder funções ou privilégios de superutilizador a um utilizador enquanto o cria. Para tal, inclua os argumentos --db-roles ou --superuser, conforme descrito na secção seguinte.

Conceda funções a um utilizador da base de dados

Consola

Para conceder funções a um utilizador da base de dados, use psql ou a CLI gcloud, em vez da consola Google Cloud .

psql

GRANT ROLE to USERNAME;

Substitua as seguintes variáveis:

  • USERNAME: nome de utilizador do utilizador.
  • ROLE: função a conceder ao utilizador. Por exemplo, para conceder ao utilizador privilégios de superutilizador, atribua-lhe alloydbsuperuser.

gcloud

Use o seguinte comando gcloud alloydb users set-roles para especificar todas as funções que quer que o utilizador tenha:

gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID

Substitua as seguintes variáveis:

  • USERNAME: nome de utilizador do utilizador.

  • ROLES: lista separada por vírgulas de todas as funções que quer que o utilizador tenha. Certifique-se de que lista todas as funções, incluindo as funções existentes e as novas.

    Para encontrar a lista de funções existentes atribuídas ao utilizador, execute o seguinte comando:

    gcloud alloydb users list --cluster=CLUSTER_ID --region=REGION_ID

    Substitua as seguintes variáveis:

    • CLUSTER_ID: ID do cluster que contém o utilizador.

    • REGION_ID: ID da região onde o cluster reside. Por exemplo, us-central1.

    Para conceder privilégios de superutilizador a um utilizador, pode conceder-lhe manualmente a função alloydbsuperuser através de psql ou executar o comando gcloud alloydb users set-superuser com o argumento --superuser=true:

    gcloud alloydb users set-superuser USERNAME \
    --superuser=true \
    --cluster=CLUSTER_ID \
    --region=REGION_ID

    Substitua as seguintes variáveis:

    • CLUSTER_ID: ID do cluster que contém o utilizador.

    • REGION_ID: ID da região onde o cluster reside. Por exemplo, us-central1.

Altere a palavra-passe de um utilizador da base de dados

Para definir uma nova palavra-passe para um utilizador da base de dados PostgreSQL padrão, siga os passos nesta secção.

Não pode alterar nem definir a palavra-passe de um utilizador baseado no IAM porque os utilizadores do IAM não usam palavras-passe para autenticar. Para mais informações, consulte Estabeleça ligação através de uma conta do IAM.

Consola

  1. Aceda à página Clusters.

    Aceda a Clusters

  2. Clique no nome do cluster que contém o utilizador da base de dados.

  3. Clique em Utilizadores.

  4. Na linha que representa o utilizador, clique em Abrir ações para este utilizador.

  5. Selecione Alterar palavra-passe.

  6. Especifique uma palavra-passe:

    • Para definir uma nova palavra-passe para este utilizador, escreva a palavra-passe no campo Palavra-passe.

    • Para não definir nenhuma palavra-passe para este utilizador, selecione a caixa de verificação Sem palavra-passe.

  7. Clique em OK.

psql

ALTER USER USERNAME WITH PASSWORD PASSWORD;

Para mais informações sobre como alterar a palavra-passe de um utilizador, consulte o artigo ALTER ROLE.

gcloud

Use o seguinte comando:gcloud alloydb users set-password

gcloud alloydb users set-password USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID

Substitua as seguintes variáveis:

  • USERNAME: nome de utilizador do utilizador.

  • PASSWORD: nova palavra-passe a atribuir ao utilizador.

  • CLUSTER_ID: ID do cluster ao qual o utilizador pertence.

  • REGION_ID: ID da região onde o cluster reside. Por exemplo, us-central1.

Revogue uma função de um utilizador da base de dados

Consola

Para revogar funções de um utilizador, use psql ou a CLI gcloud, em vez da consola Google Cloud .

psql

Pode revogar privilégios concedidos anteriormente a uma ou mais funções ou revogar a associação de um utilizador a uma função, conforme mostrado:

REVOKE ROLE FROM USERNAME;

Para remover os privilégios de superutilizador de um utilizador, revogue a função alloydbsuperuser desse utilizador.

gcloud

Para revogar uma função com a Google Cloud CLI, use o seguinte comando gcloud alloydb users set-roles para especificar todas as funções que quer que o utilizador tenha e para omitir funções a revogar do utilizador:

gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID

Substitua as seguintes variáveis:

  • USERNAME: nome de utilizador do utilizador.

  • ROLES: lista separada por vírgulas de todas as funções que quer que o utilizador tenha. Certifique-se de que lista todas as funções, incluindo as funções existentes e as novas.

    Para encontrar a lista de funções existentes atribuídas ao utilizador, execute o seguinte comando:

    gcloud alloydb users list --cluster=CLUSTER_ID --region=REGION_ID
  • CLUSTER_ID: ID do cluster que contém o utilizador.

  • REGION_ID: ID da região onde o cluster reside. Por exemplo, us-central1.

Para revogar os privilégios de superutilizador, pode remover manualmente a função alloydbsuperuser de um utilizador através de psql ou executar o comando gcloud alloydb users set-superuser com o argumento --superuser=false.

Veja uma lista de utilizadores da base de dados

Consola

  1. Aceda à página Clusters.

    Aceda a Clusters

  2. Clique no nome do cluster cujos utilizadores quer ver.

  3. Clique em Utilizadores.

psql

Use o seguinte comando \du para imprimir uma tabela de todos os utilizadores da base de dados, que inclui as respetivas associações a grupos:

\du

gcloud

Use o seguinte comando:gcloud alloydb users list

gcloud alloydb users list \
--cluster=CLUSTER_ID \
--region=REGION_ID

Substitua o seguinte:

  • CLUSTER_ID: ID do cluster que contém os utilizadores.

  • REGION_ID: ID da região onde o cluster reside. Por exemplo, us-central1.

Elimine um utilizador da base de dados

Consola

  1. Aceda à página Clusters.

    Aceda a Clusters

  2. Clique no nome do cluster que contém o utilizador.

  3. Clique em Utilizadores.

  4. Na linha que representa o utilizador, clique em Abrir ações para este utilizador.

  5. Selecione Remover.

  6. Na caixa de diálogo Remover conta de utilizador?, clique em Remover.

psql

Antes de eliminar um utilizador, tem de eliminar ou reatribuir todos os objetos que lhe pertencem e revogar todos os privilégios que lhe foram concedidos noutros objetos. Use o seguinte:

DROP ROLE USERNAME;

gcloud

Use o seguinte comando gcloud alloydb users delete:

gcloud alloydb users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION_ID

Substitua o seguinte:

  • USERNAME: nome de utilizador do utilizador.

  • CLUSTER_ID: ID do cluster ao qual o utilizador pertence.

  • REGION_ID: ID da região onde o cluster reside. Por exemplo, us-central1.

O que se segue?