Gestisci gli utenti PostgreSQL con l'autenticazione integrata

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

Creare utenti PostgreSQL in AlloyDB

Quando crei utenti PostgreSQL, questi iniziano solo con il privilegio LOGIN. Per saperne di più su questi privilegi, consulta CREATE USER.

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

Gestire utenti

Puoi creare e gestire gli utenti AlloyDB con Google Cloud CLI o utilizzando i comandi PostgreSQL. Nelle sezioni seguenti vengono illustrate le attività comuni di gestione degli utenti utilizzando uno dei due metodi.

Prima di iniziare

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

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

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

Creare 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 del 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 in 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 autenticare e accedere ai cluster di database, devi completare passaggi aggiuntivi 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 qualsiasi ruolo 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 saperne di più su come creare e definire gli utenti del database, consulta CREATE USER.

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

gcloud

Utilizza il seguente gcloud alloydb users create comando:

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 racchiuso tra virgolette doppie. Ad esempio, db_user_1.

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

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

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

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

Inoltre, puoi concedere a un utente ruoli o privilegi di superuser 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 Google Cloud console.

psql

GRANT ROLE to USERNAME;

Sostituisci le seguenti variabili:

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

gcloud

Utilizza il seguente gcloud alloydb users set-roles comando per specificare tutti i ruoli che vuoi che l'utente abbia:

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 abbia. Assicurati di elencare tutti i ruoli, inclusi quelli esistenti e quelli nuovi.

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

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

    Sostituisci le seguenti variabili:

    • CLUSTER_ID: ID del cluster contenente l'utente.

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

    Per concedere a un utente i privilegi di superuser, puoi concedere manualmente all'utente il ruolo alloydbsuperuser utilizzando psql, oppure puoi eseguire il gcloud alloydb users set-superuser comando 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: ID del cluster contenente l'utente.

    • REGION_ID: 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 descritti 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 saperne di più, consulta Connettersi 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 Modifica password.

  6. Specifica una password:

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

    • Per non impostare una 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, consulta ALTER ROLE.

gcloud

Utilizza il seguente gcloud alloydb users set-password comando:

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: ID del cluster a cui appartiene l'utente.

  • REGION_ID: ID della regione in cui risiede 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 Google Cloud console.

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 superuser di un utente, revoca il ruolo alloydbsuperuser per quell'utente.

gcloud

Per revocare un ruolo con Google Cloud CLI, utilizza il seguente gcloud alloydb users set-roles comando per specificare tutti i ruoli che vuoi che l'utente abbia 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: nome utente dell'utente.

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

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

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

  • REGION_ID: ID della regione in cui risiede 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 gruppi di appartenenza:

\du

gcloud

Utilizza il seguente gcloud alloydb users list comando:

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

Sostituisci quanto segue:

  • CLUSTER_ID: ID del cluster contenente gli utenti.

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

Eliminare un utente del 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 concessi all'utente su altri oggetti. Utilizza quanto segue:

DROP ROLE USERNAME;

gcloud

Utilizza il seguente gcloud alloydb users delete comando:

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

Sostituisci quanto segue:

  • USERNAME: nome utente dell'utente.

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

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

Passaggi successivi