Questa pagina descrive il funzionamento di AlloyDB per PostgreSQL con i ruoli utente PostgreSQL.
Informazioni sui ruoli utente in AlloyDB
Un database AlloyDB utilizza il concetto standard di PostgreSQL dei ruoli. Un ruolo può agire come utente del database, come gruppo di utenti o come entrambi.
Un ruolo utente ha il privilegio LOGIN
che consente agli utenti di accedere al sistema. Un ruolo di gruppo ha ruoli di membro con vari privilegi, che puoi concedere o revocare a tutti i membri contemporaneamente.
Ruoli PostgreSQL predefiniti di AlloyDB
PostgreSQL ha un insieme di ruoli predefiniti con vari privilegi. AlloyDB aggiunge diversi ruoli di utente e gruppo a questo insieme di ruoli predefiniti di PostgreSQL.
La tabella seguente elenca i ruoli PostgreSQL predefiniti da AlloyDB:
Nome ruolo | Privilegi |
---|---|
alloydbsuperuser |
CREATEROLE , CREATEDB e LOGIN . |
postgres |
CREATEROLE , CREATEDB e LOGIN . |
alloydbimportexport |
CREATEROLE e CREATEDB . |
alloydbagent |
CREATEROLE e CREATEDB . |
alloydbreplica |
REPLICATION |
alloydbiamuser |
Per impostazione predefinita, questo ruolo non dispone di privilegi. |
Le sezioni che seguono forniscono informazioni su alcuni dei ruoli specifici di AlloyDB più comunemente utilizzati.
Il ruolo del gruppo alloydbsuperuser
Il ruolo alloydbsuperuser
è un ruolo predefinito per configurare inizialmente il sistema di database ed eseguire altre attività di superutente. Questo ruolo ha i seguenti privilegi:
- Creare estensioni che richiedono privilegi di superutente
- Creare trigger evento
- Creare utenti di replica
- Creare pubblicazioni e sottoscrizioni di replica
In quanto servizio gestito, AlloyDB
non ti consente di concedere agli utenti il ruolo superuser
di PostgreSQL. In alternativa, puoi assegnare a qualsiasi ruolo utente del database i privilegi di superutente AlloyDB concedendogli il ruolo alloydbsuperuser
.
Il ruolo utente postgres
L'utente postgres
fa parte del ruolo alloydbsuperuser
. Quando crei un cluster AlloyDB, assegni una password al ruolo utente postgres
. Poi accedi al sistema utilizzando il ruolo utente postgres
per creare database, ruoli aggiuntivi e così via.
Il ruolo utente alloydbimportexport
Quando crei un cluster AlloyDB, viene creato l'utente predefinito alloydbimportexport
con l'insieme minimo di privilegi necessari per le operazioni di importazione ed esportazione.
Hai la possibilità di creare i tuoi utenti per eseguire queste operazioni. Se non crei un utente alloydbimportexport
personalizzato, il sistema utilizza l'utente alloydbimportexport
predefinito per le operazioni di importazione ed esportazione.
L'utente alloydbimportexport
è un utente di sistema; non puoi usarlo direttamente per accedere o eseguire altre operazioni nel database PostgreSQL.alloydbimportexport
Il ruolo del gruppo alloydbiamuser
Gli utenti del database all'interno del ruolo di gruppo alloydbiamuser
si autenticano con un'istanza AlloyDB utilizzando Identity and Access Management, anziché l'autenticazione basata su password PostgreSQL standard.
AlloyDB non ti consente di concedere questo ruolo agli utenti
utilizzando il comando GRANT
PostgreSQL o metodi simili. Puoi invece utilizzare gli strumenti amministrativi di AlloyDB per creare e gestire gli utenti del database basati su Identity and Access Management. Per ulteriori informazioni, consulta Gestire l'autenticazione IAM.
Creare altri utenti PostgreSQL in AlloyDB
Puoi creare altri utenti o ruoli PostgreSQL. Questi utenti hanno lo stesso insieme di privilegi dell'utente postgres
: CREATE ROLE
, CREATEDB
e LOGIN
. Per ulteriori informazioni su questi
privilegi, consulta CREATE ROLE
.
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 i ruoli utente di 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 cluster non ha un'istanza principale, devi crearne una prima di poter gestire gli utenti.
Crea un utente di database
Per creare un utente del database che si autentica 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 un utente di database che utilizzi Identity and Access Management per l'autenticazione, consulta Gestire l'autenticazione IAM.
Console
Vai alla pagina Cluster.
Fai clic sul nome del cluster a cui vuoi aggiungere un utente.
Fai clic su Utenti.
Fai clic su Aggiungi account utente.
Lascia selezionata l'opzione Autenticazione integrata.
In alternativa, puoi selezionare Cloud IAM per creare un utente di database che utilizzi IAM per l'autenticazione. Questa selezione richiede passaggi aggiuntivi per preparare il progetto e concedere le autorizzazioni appropriate al nuovo utente del database. Per ulteriori informazioni, consulta Gestire l'autenticazione IAM.
Inserisci un nome utente e una password per il nuovo utente.
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 ruolo 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 quanto segue:
USERNAME
: il nome utente del nuovo ruolo utente.PASSWORD
: la password del nuovo ruolo utente. Per creare l'utente senza una password, ometti questo argomento.CLUSTER_ID
: l'ID del cluster a cui aggiungere il nuovo ruolo dell'utente.REGION_ID
: l'ID della regione in cui si trova il cluster, ad esempious-central1
.
Dopo aver creato un ruolo utente, puoi modificarne i privilegi utilizzando il comando gcloud alloydb users set-roles
.
Puoi anche 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.
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;
Per concedere a un utente i privilegi di superutente, assegnagli il ruolo 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 quanto segue:
USERNAME
: il ruolo utente a cui assegnare i ruoli.ROLES
: un elenco separato da virgole di tutti i ruoli che vuoi che l'utente specificato possieda. Assicurati di elencare tutti i ruoli, inclusi quelli esistenti e nuovi, che vuoi assegnare all'utente.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
: l'ID del cluster contenente l'utente.REGION_ID
: l'ID della regione in cui si trova il cluster, ad esempious-central1
.
Per concedere a un utente i privilegi di superutente, puoi assegnare manualmente il ruolo alloydbsuperuser
utilizzando il comando descritto in precedenza 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
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é questi utenti non utilizzano le password per l'autenticazione. Per ulteriori informazioni, consulta Eseguire la connessione utilizzando un account IAM.
Console
Vai alla pagina Cluster.
Fai clic sul nome del cluster contenente l'utente del database di cui vuoi modificare la password.
Fai clic su Utenti.
Nella riga che rappresenta l'utente di cui vuoi modificare la password, fai clic su
Apri le azioni per questo utente.Seleziona Cambia password.
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.
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 quanto segue:
USERNAME
: il nome utente del ruolo utente.PASSWORD
: la nuova password da assegnare al ruolo dell'utente.CLUSTER_ID
: l'ID del cluster a cui appartiene il ruolo dell'utente.REGION_ID
: l'ID della regione in cui si trova il cluster, ad esempious-central1
.
Revocare un ruolo da un utente di database
Console
Per revocare i ruoli a un utente del database, utilizza psql
o gcloud CLI anziché la console Google Cloud.
psql
Puoi revocare i privilegi concessi in precedenza da uno o più ruoli o revocare l'appartenenza 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 quanto segue:
USERNAME
: il ruolo utente da cui revocare i ruoli.ROLES
: un elenco separato da virgole di tutti i ruoli che vuoi che l'utente specificato possieda, omettendo i ruoli da revocare.Per trovare l'elenco di tutti i ruoli assegnati all'utente, esegui il seguente comando:
gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
CLUSTER_ID
: l'ID del cluster contenente l'utente.REGION_ID
: l'ID della regione in cui si trova il cluster, ad esempious-central1
.
Per revocare i privilegi di superutente, puoi rimuovere manualmente il ruolo alloydbsuperuser
di un utente utilizzando il comando descritto in precedenza oppure puoi eseguire il comando gcloud alloydb users set-superuser
con l'argomento --superuser=false
.
Visualizzare un elenco di utenti del database
Console
Vai alla pagina Cluster.
Fai clic sul nome del cluster di cui vuoi visualizzare gli utenti.
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 di cui elencare gli utenti.REGION_ID
: l'ID della regione in cui si trova il cluster, ad esempious-central1
.
Eliminazione di un utente di database
Console
Vai alla pagina Cluster.
Fai clic sul nome del cluster da cui vuoi rimuovere l'utente.
Fai clic su Utenti.
Nella riga che rappresenta l'utente che vuoi rimuovere, fai clic su
Apri le azioni per questo utente.Seleziona Rimuovi.
Nella finestra di dialogo Rimuovere l'account utente?, fai clic su Rimuovi.
psql
Prima di eliminare un utente, devi eliminare tutti gli oggetti di sua proprietà o riassegnare la proprietà e revocare eventuali privilegi concessi al ruolo 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
: il ruolo utente da eliminare.CLUSTER_ID
: l'ID del cluster da cui rimuovere il ruolo dell'utente.REGION_ID
: l'ID della regione in cui si trova il cluster, ad esempious-central1
.