Gestisci gli utenti PostgreSQL con l'autenticazione integrata

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

Crea utenti PostgreSQL in AlloyDB

Quando crei utenti PostgreSQL, questi iniziano solo con il privilegio LOGIN. Per ulteriori informazioni su questi privilegi, vedi 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 mostrano le attività comuni di gestione degli utenti utilizzando uno dei due metodi.

Prima di iniziare

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

  • Accesso al client 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 su un cluster, quest'ultimo deve avere un'istanza primaria. Se il tuo cluster non ha un'istanza primaria, devi crearne una prima di poter gestire gli utenti.

Crea un utente del database

Per creare un utente del database che esegue l'autenticazione direttamente con il database utilizzando un nome utente e una password, nota anche come autenticazione integrata, segui i passaggi descritti in questa sezione.

Per creare invece un utente di database che utilizza Identity and Access Management (IAM) per l'autenticazione, 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 saperne di più, consulta Gestire l'autenticazione IAM.

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

  7. Per assegnare all'utente ruoli diversi da quello predefinito alloydbsuperuser, segui questi passaggi:

    1. Inserisci il nome del ruolo in Ruoli.
    2. Per aggiungere il ruolo, premi Invio o Tab.
    3. Seleziona x per tutti i ruoli che vuoi rimuovere per l'utente.

      Per saperne di più, consulta Ruoli predefiniti.

  8. Fai clic su Aggiungi.

psql

CREATE USER USERNAME WITH PASSWORD PASSWORD;

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

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

gcloud

Utilizza il seguente comando gcloud alloydb users create:

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

Sostituisci le seguenti variabili:

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

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

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

  • REGION_ID: ID della regione in cui si trova 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 creazione. Per farlo, includi gli argomenti --db-roles o --superuser, come descritto nella sezione seguente.

Concedere 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: il nome utente dell'utente.
  • ROLE: il ruolo da concedere all'utente. Ad esempio, per concedere all'utente i privilegi di superutente, concedigli alloydbsuperuser.

gcloud

Utilizza il seguente 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: il 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 quelli nuovi.

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

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

    Sostituisci le seguenti variabili:

    • CLUSTER_ID: l'ID del cluster che contiene l'utente.

    • REGION_ID: ID della regione in cui si trova il cluster. Ad esempio, us-central1.

    Per concedere a un utente i privilegi di superuser, puoi concedere manualmente a questo 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 che contiene l'utente.

    • REGION_ID: ID della regione in cui si trova 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 password per l'autenticazione. Per maggiori informazioni, vedi Connettiti 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, digita la password 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 saperne di più su come modificare la password di un utente, vedi ALTER ROLE.

gcloud

Utilizza il seguente 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: il nome utente dell'utente.

  • PASSWORD: la nuova password da assegnare all'utente.

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

  • REGION_ID: ID della regione in cui si trova il cluster. Ad esempio, us-central1.

Revocare un ruolo da un utente del database

Console

Per revocare i ruoli di un utente, utilizza psql o gcloud CLI, anziché la console Google Cloud .

psql

Puoi revocare i privilegi concessi in precedenza a uno o più ruoli o revocare l'appartenenza di un utente a un ruolo, come mostrato di seguito:

REVOKE ROLE FROM USERNAME;

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

gcloud

Per revocare un ruolo con Google Cloud CLI, utilizza il seguente comando gcloud alloydb users set-roles per specificare tutti i ruoli che vuoi che l'utente possieda e per omettere i ruoli da revocare all'utente:

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

Sostituisci le seguenti variabili:

  • USERNAME: il 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 quelli nuovi.

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

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

  • REGION_ID: ID della regione in cui si trova il cluster. Ad esempio, us-central1.

Per revocare i privilegi di superuser, 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

Utilizza il seguente comando \du per stampare una tabella di tutti gli utenti del database, inclusi i membri del gruppo:

\du

gcloud

Utilizza il seguente 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: ID della regione in cui si trova 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 che contiene 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. Utilizza quanto segue:

DROP ROLE USERNAME;

gcloud

Utilizza il seguente comando gcloud alloydb users delete:

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

Sostituisci quanto segue:

  • USERNAME: il nome utente dell'utente.

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

  • REGION_ID: ID della regione in cui si trova il cluster. Ad esempio, us-central1.

Passaggi successivi