Gestire gli utenti PostgreSQL con l'autenticazione standard

Questa pagina descrive come creare, gestire e rimuovere i ruoli, gli utenti e i gruppi di PostgreSQL e AlloyDB per PostgreSQL utilizzando i metodi di autenticazione standard di PostgreSQL basati su password.

Creare utenti PostgreSQL in AlloyDB

Quando crei utenti PostgreSQL, questi iniziano solo con il privilegio LOGIN. Per ulteriori informazioni su questi privilegi, consulta CREATE USER.

Puoi modificare i privilegi di qualsiasi utente utilizzando il comando ALTER ROLE. Se crei un nuovo utente con il client psql, puoi scegliere di associarlo a un ruolo diverso o assegnare privilegi diversi.

Gestisci utenti

Puoi creare e gestire gli utenti AlloyDB con Google Cloud CLI o utilizzando i comandi PostgreSQL. Le sezioni seguenti illustrano le attività comuni di gestione degli utenti utilizzando entrambi i metodi.

Prima di iniziare

Per utilizzare i comandi PostgreSQL per gestire gli utenti in un cluster, devi disporre di quanto segue:

  • Accesso al cliente psql
  • Accesso all'utente del database postgres o a un altro ruolo utente con i privilegi amministrativi appropriati

Per utilizzare la console Google Cloud o Google Cloud CLI per gestire gli utenti in un cluster, il cluster deve avere un'istanza principale. Se il tuo cluster non ha un'istanza principale, devi crearne una prima di poter gestire gli utenti.

Crea un utente di database

Per creare un utente di database che si autentica direttamente nel database utilizzando un nome utente e una password, nota anche come autenticazione integrata, segui i passaggi descritti in questa sezione.

Per creare un utente di database che utilizzi Identity and Access Management (IAM) per autenticarsi, consulta Gestire l'autenticazione IAM.

Console

  1. Vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic sul nome del cluster a cui vuoi aggiungere un utente.

  3. Fai clic su Utenti.

  4. Fai clic su Aggiungi account utente.

  5. Lascia selezionata l'opzione Autenticazione integrata.

    Se vuoi utilizzare IAM per autenticarti e accedere ai tuoi cluster di database, devi completare ulteriori passaggi per preparare il progetto e concedere le autorizzazioni appropriate al nuovo utente. Per ulteriori informazioni, consulta Gestire l'autenticazione IAM.

  6. Inserisci un nome utente e una password per il nuovo utente.

  7. Fai clic su Aggiungi.

psql

CREATE USER USERNAME WITH PASSWORD PASSWORD;

Per ulteriori informazioni su come creare e definire gli utenti del database, consulta CREATE USER.

Dopo aver creato un utente, puoi modificarne i privilegi utilizzando il comando ALTER ROLE nel client psql.

gcloud

Utilizza il comando gcloud alloydb users create.

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

Sostituisci le seguenti variabili:

  • USERNAME: nome utente dell'utente. USERNAME deve seguire le regole per gli identificatori SQL: senza caratteri speciali o tra virgolette doppie. Ad esempio: db_user_1.

  • PASSWORD: password dell'utente. Per creare l'utente senza password, ometti questo argomento.

  • CLUSTER_ID: l'ID del cluster a cui aggiungere l'utente.

  • REGION_ID: l'ID della regione in cui risiede il cluster. Ad esempio, us-central1.

Dopo aver creato un utente, puoi modificarne i privilegi utilizzando il comando gcloud alloydb users set-roles.

Inoltre, puoi concedere ruoli o privilegi di superutente a un utente durante la sua creazione. Per farlo, includi gli argomenti --db-roles o --superuser, come descritto nella sezione seguente.

Concedi ruoli a un utente del database

Console

Per concedere ruoli a un utente del database, utilizza psql o gcloud CLI anziché la console Google Cloud.

psql

GRANT ROLE to USERNAME;

Sostituisci le seguenti variabili:

  • USERNAME: nome utente dell'utente.
  • ROLE: ruolo da concedere all'utente. Ad esempio, per assegnare all'utente i privilegi di superutente, concedi alloydbsuperuser.

gcloud

Utilizza il comando gcloud alloydb users set-roles per specificare tutti i ruoli che vuoi che l'utente possieda.

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

Sostituisci le seguenti variabili:

  • USERNAME: nome utente dell'utente.

  • ROLES: elenco separato da virgole di tutti i ruoli che vuoi che l'utente possieda. Assicurati di elencare tutti i ruoli, inclusi quelli esistenti e nuovi.

    Per trovare l'elenco dei ruoli esistenti assegnati all'utente, esegui il seguente comando:

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

    Sostituisci le seguenti variabili:

    • CLUSTER_ID: l'ID del cluster contenente l'utente.

    • REGION_ID: l'ID della regione in cui risiede il cluster. Ad esempio, us-central1.

    Per concedere a un utente i privilegi di superutente, puoi assegnare manualmente all'utente il ruolo alloydbsuperuser utilizzando psql oppure puoi eseguire il comando gcloud alloydb users set-superuser con l'argomento --superuser=true:

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

    Sostituisci le seguenti variabili:

    • CLUSTER_ID: l'ID del cluster contenente l'utente.

    • REGION_ID: l'ID della regione in cui risiede il cluster. Ad esempio, us-central1.

Modificare la password di un utente del database

Per impostare una nuova password per un utente del database PostgreSQL standard, segui i passaggi in questa sezione.

Non puoi modificare o impostare la password di un utente basato su IAM perché gli utenti IAM non utilizzano le password per l'autenticazione. Per maggiori informazioni, consulta Eseguire la connessione utilizzando un account IAM.

Console

  1. Vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic sul nome del cluster che contiene l'utente del database.

  3. Fai clic su Utenti.

  4. Nella riga che rappresenta l'utente, fai clic su Apri le azioni per questo utente.

  5. Seleziona Cambia password.

  6. Specifica una password:

    • Per impostare una nuova password per questo utente, digitala nel campo Password.

    • Per non impostare alcuna password per questo utente, seleziona la casella di controllo Nessuna password.

  7. Fai clic su OK.

psql

ALTER USER USERNAME WITH PASSWORD PASSWORD;

Per ulteriori informazioni sulla modifica della password di un utente, consulta ALTER ROLE.

gcloud

Utilizza il comando gcloud alloydb users set-password:

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

Sostituisci le seguenti variabili:

  • USERNAME: nome utente dell'utente.

  • PASSWORD: nuova password da assegnare all'utente.

  • CLUSTER_ID: l'ID del cluster a cui appartiene l'utente.

  • REGION_ID: l'ID della regione in cui risiede il cluster. Ad esempio, us-central1.

Revocare un ruolo da un utente di database

Console

Per revocare i ruoli a un utente, utilizza psql o gcloud CLI, invece della console Google Cloud.

psql

Puoi revocare i privilegi concessi in precedenza da uno o più ruoli o la partecipazione di un utente a un ruolo.

REVOKE ROLE FROM USERNAME;

Per rimuovere i privilegi di superutente di un utente, revoca il ruolo alloydbsuperuser dall'utente.

gcloud

Per revocare un ruolo con Google Cloud CLI, utilizza il comando gcloud alloydb users set-roles per specificare tutti i ruoli che vuoi che l'utente possieda, omettendo i ruoli da revocare dall'utente.

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

Sostituisci le seguenti variabili:

  • USERNAME: nome utente dell'utente.

  • ROLES: elenco separato da virgole di tutti i ruoli che vuoi che l'utente possieda. Assicurati di elencare tutti i ruoli, inclusi quelli esistenti e nuovi.

    Per trovare l'elenco dei ruoli esistenti assegnati all'utente, esegui il seguente comando:

    gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
  • CLUSTER_ID: ID del cluster contenente l'utente.

  • REGION_ID: l'ID della regione in cui risiede il cluster. Ad esempio, us-central1.

Per revocare i privilegi di superutente, puoi rimuovere manualmente il ruolo alloydbsuperuser di un utente utilizzando psql oppure puoi eseguire il comando gcloud alloydb users set-superuser con l'argomento --superuser=false.

Visualizzare un elenco di utenti del database

Console

  1. Vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic sul nome del cluster di cui vuoi visualizzare gli utenti.

  3. Fai clic su Utenti.

psql

Il comando \du stampa una tabella di tutti gli utenti del database, inclusi i relativi appartenenze ai gruppi.

\du

gcloud

Utilizza il comando gcloud alloydb users list.

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

Sostituisci quanto segue:

  • CLUSTER_ID: l'ID del cluster contenente gli utenti.

  • REGION_ID: l'ID della regione in cui risiede il cluster. Ad esempio, us-central1.

Eliminazione di un utente di database

Console

  1. Vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic sul nome del cluster contenente l'utente.

  3. Fai clic su Utenti.

  4. Nella riga che rappresenta l'utente, fai clic su Apri le azioni per questo utente.

  5. Seleziona Rimuovi.

  6. Nella finestra di dialogo Rimuovere l'account utente?, fai clic su Rimuovi.

psql

Prima di eliminare un utente, devi eliminare o riassegnare tutti gli oggetti di sua proprietà e revocare tutti i privilegi che gli sono stati concessi su altri oggetti.

DROP ROLE USERNAME;

gcloud

Utilizza il comando gcloud alloydb users delete.

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

Sostituisci quanto segue:

  • USERNAME: nome utente dell'utente.

  • CLUSTER_ID: l'ID del cluster a cui appartiene l'utente.

  • REGION_ID: l'ID della regione in cui risiede il cluster. Ad esempio, us-central1.

Passaggi successivi