Questa pagina descrive come abilitare e utilizzare l'autenticazione integrata di Cloud SQL.
Per una panoramica, consulta Autenticazione integrata dei database Cloud SQL.Prima di creare gli utenti
- Crea un'istanza Cloud SQL. Per saperne di più, vedi Crea istanze.
- Abilita le policy per le password per l'istanza. Per saperne di più, consulta Policy delle password delle istanze.
Se prevedi di utilizzare il client amministrativo del tuo database per gestire gli utenti, svolgi le seguenti operazioni:
Connetti il client all'istanza. Consulta Opzioni di connessione per applicazioni esterne.
Configura l'utente predefinito sull'istanza impostando la password. Consulta Imposta la password per l'account utente predefinito.
Imposta la password per l'account utente predefinito
Quando crei una nuova istanza Cloud SQL, devi impostare una password per l'account utente predefinito prima di poterti connettere all'istanza.
Per Cloud SQL per PostgreSQL, l'utente predefinito èpostgres.
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Seleziona Utenti dal menu di navigazione SQL.
- Trova l'utente
postgrese seleziona Cambia password dal menu Altre azioni
.
- Fornisci una password efficace che puoi ricordare e fai clic su Ok.
gcloud
Utilizza il
comando
gcloud sql users set-password come segue per impostare la password per l'utente predefinito.
Sostituisci INSTANCE_NAME con il nome dell'istanza prima di eseguire il comando.
gcloud sql users set-password postgres \ --instance=INSTANCE_NAME \ --prompt-for-password
REST v1
Per aggiornare la password dell'account utente predefinito, utilizza una richiesta PUT con il metodo users:update.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'ID istanza desiderato
- user-id: l'ID dell'utente
- password: la password dell'utente
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id
Corpo JSON della richiesta:
{
"name": "user-id",
"password": "password"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
Per aggiornare la password dell'account utente predefinito, utilizza una richiesta PUT con il metodo users:update.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'ID istanza desiderato
- user-id: l'ID dell'utente
- password: la password dell'utente
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id
Corpo JSON della richiesta:
{
"name": "user-id",
"password": "password"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
Crea un utente
Dopo aver configurato l'account utente predefinito, puoi creare altri utenti.
Quando crei un utente integrato, puoi assegnargli uno o più ruoli del database.
Per assegnare un ruolo di database personalizzato a un utente, devi prima creare il ruolo nel database PostgreSQL. Per creare un ruolo in PostgreSQL, consulta Ruoli del database.Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Seleziona Utenti dal menu di navigazione SQL.
- Fai clic su Aggiungi account utente.
Nella pagina Aggiungi un account utente all'istanza instance_name, puoi scegliere se l'utente esegue l'autenticazione con il metodo del database integrato (nome utente e password) o come utente IAM.
- Seleziona Autenticazione integrata (impostazione predefinita) e aggiungi le seguenti informazioni:
- Un nome utente.
- Facoltativo. Una password. Fornisci una password efficace che puoi ricordare.
- Fai clic su Aggiungi.
Se crei un utente PostgreSQL che utilizza l'autenticazione integrata, all'utente viene concesso
automaticamente il ruolo cloudsqlsuperuser. All'utente vengono forniti i seguenti privilegi associati a questo ruolo: CREATEROLE, CREATEDB e LOGIN.
Se vuoi modificare i privilegi per l'utente, puoi creare e assegnare uno o più ruoli di database PostgreSQL personalizzati quando crei l'utente in Cloud SQL. Se assegni uno o più ruoli di database personalizzati quando
crei l'utente in Cloud SQL, all'utente non viene concesso il ruolo
cloudsqlsuperuser.
Se devi modificare gli attributi di questi utenti, utilizza il comando
ALTER ROLE
nel client psql. Non tutti gli attributi possono essere
modificati con ALTER ROLE. Le eccezioni includono i ruoli
NOSUPERUSER e NOREPLICATION.
Per ulteriori informazioni su questi account utente e privilegi, vedi Altri account utente PostgreSQL.
gcloud
Per creare un utente, utilizza il comando
gcloud sql users create.
Sostituisci quanto segue:
- USER_NAME: il nome utente.
- INSTANCE_NAME: il nome dell'istanza
- PASSWORD: la password per l'utente.
- ROLE_1, ROLE_2 ..., ROLE_N: facoltativo. Il ruolo o i ruoli del database da assegnare all'utente.
gcloud sql users create USER_NAME \ --instance=INSTANCE_NAME \ --password=PASSWORD \ --database-roles=ROLE_1, ROLE_2, ..., ROLE_N
Se crei un utente PostgreSQL che utilizza l'autenticazione integrata, all'utente viene concesso
automaticamente il ruolo cloudsqlsuperuser. All'utente vengono forniti i seguenti privilegi associati a questo ruolo: CREATEROLE, CREATEDB e LOGIN.
Se vuoi modificare i privilegi per l'utente, puoi creare e assegnare uno o più ruoli di database PostgreSQL personalizzati quando crei l'utente in Cloud SQL. Se assegni uno o più ruoli di database personalizzati quando
crei l'utente in Cloud SQL, all'utente non viene concesso il ruolo
cloudsqlsuperuser.
Se devi modificare gli attributi di questi utenti, utilizza il comando
ALTER ROLE
nel client psql. Non tutti gli attributi possono essere
modificati con ALTER ROLE. Le eccezioni includono i ruoli
NOSUPERUSER e NOREPLICATION.
Per ulteriori informazioni su questi account utente e privilegi, vedi Altri account utente PostgreSQL.
I limiti di lunghezza del nome utente sono gli stessi per Cloud SQL e per PostgreSQL on-premise.
Quando crei un utente, puoi aggiungere parametri per la policy per le password degli utenti.
Terraform
Per creare un utente, utilizza una risorsa Terraform.
Applica le modifiche
Per applicare la configurazione Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Preparare la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo questo comando e inserendo
yesal prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Elimina le modifiche
Per eliminare le modifiche:
- Per disattivare la protezione dall'eliminazione, nel file di configurazione Terraform imposta l'argomento
deletion_protectionsufalse.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente e
inserendo
yesal prompt:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform destroy
REST v1
Per creare un utente, utilizza una richiesta POST con il metodo users:insert.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza
- USER_ID: l'ID dell'utente
- PASSWORD: la password dell'utente
- ROLE_1, ROLE_2 ..., ROLE_N: facoltativo. Il ruolo o i ruoli del database da assegnare all'utente
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON della richiesta:
{
"name": "USER_ID",
"password": "PASSWORD",
"databaseRoles": [
"ROLE_1",
"ROLE_2"
]
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2025-10-20T22:44:16.656Z",
"startTime": "2025-10-20T22:44:16.686Z",
"endTime": "2025-10-20T22:44:20.437Z",
"operationType": "CREATE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Se crei un utente PostgreSQL che utilizza l'autenticazione integrata, all'utente viene concesso
automaticamente il ruolo cloudsqlsuperuser. All'utente vengono forniti i seguenti privilegi associati a questo ruolo: CREATEROLE, CREATEDB e LOGIN.
Se vuoi modificare i privilegi per l'utente, puoi creare e assegnare uno o più ruoli di database PostgreSQL personalizzati quando crei l'utente in Cloud SQL. Se assegni uno o più ruoli di database personalizzati quando
crei l'utente in Cloud SQL, all'utente non viene concesso il ruolo
cloudsqlsuperuser.
Se devi modificare gli attributi di questi utenti, utilizza il comando
ALTER ROLE
nel client psql. Non tutti gli attributi possono essere
modificati con ALTER ROLE. Le eccezioni includono i ruoli
NOSUPERUSER e NOREPLICATION.
Per ulteriori informazioni su questi account utente e privilegi, vedi Altri account utente PostgreSQL.
I limiti di lunghezza del nome utente sono gli stessi per Cloud SQL e per PostgreSQL on-premise.
Quando crei un utente, puoi aggiungere parametri per la policy per le password degli utenti.
REST v1beta4
Per creare un utente, utilizza una richiesta POST con il metodo users:insert.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza
- USER_ID: l'ID dell'utente
- PASSWORD: la password dell'utente
- ROLE_1, ROLE_2 ..., ROLE_N: facoltativo. Il ruolo o i ruoli del database da assegnare all'utente
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON della richiesta:
{
"name": "USER_ID",
"password": "PASSWORD",
"databaseRoles": [
"ROLE_1",
"ROLE_2"
]
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2025-10-20T22:44:16.656Z",
"startTime": "2025-10-20T22:44:16.686Z",
"endTime": "2025-10-20T22:44:20.437Z",
"operationType": "CREATE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Se crei un utente PostgreSQL che utilizza l'autenticazione integrata, all'utente viene concesso
automaticamente il ruolo cloudsqlsuperuser. All'utente vengono forniti i seguenti privilegi associati a questo ruolo: CREATEROLE, CREATEDB e LOGIN.
Se vuoi modificare i privilegi per l'utente, puoi creare e assegnare uno o più ruoli di database PostgreSQL personalizzati quando crei l'utente in Cloud SQL. Se assegni uno o più ruoli di database personalizzati quando
crei l'utente in Cloud SQL, all'utente non viene concesso il ruolo
cloudsqlsuperuser.
Se devi modificare gli attributi di questi utenti, utilizza il comando
ALTER ROLE
nel client psql. Non tutti gli attributi possono essere
modificati con ALTER ROLE. Le eccezioni includono i ruoli
NOSUPERUSER e NOREPLICATION.
Per ulteriori informazioni su questi account utente e privilegi, vedi Altri account utente PostgreSQL.
I limiti di lunghezza del nome utente sono gli stessi per Cloud SQL e per PostgreSQL on-premise.
Quando crei un utente, puoi aggiungere parametri per la policy per le password degli utenti.
Client psql
- Nel prompt
psql, crea l'utente:CREATE USER USER_NAME WITH PASSWORD PASSWORD ATTRIBUTE1 ATTRIBUTE2...;
Quando richiesto, inserisci la password.
Per saperne di più sugli attributi dei ruoli, consulta la documentazione di PostgreSQL.
- Puoi confermare la creazione dell'utente visualizzando la tabella degli utenti:
SELECT * FROM pg_roles;
Impostare una policy per le password degli utenti
Puoi impostare un criterio per le password con il tipo di autenticazione integrato.
gcloud
Per impostare la policy delle password utente, utilizza il comando
gcloud sql users set-password-policy.
Sostituisci quanto segue:
- USER_NAME: il nome utente.
- INSTANCE_NAME: il nome dell'istanza.
- HOST: Il nome host dell'utente come indirizzo IP specifico, intervallo di indirizzi o qualsiasi host (
%). - PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS: Facoltativo: il numero di
volte in cui un utente può provare la password in modo errato prima che l'account venga
bloccato. Utilizza
--password-policy-enable-failed-attempts-checkper abilitare e--no-password-policy-enable-failed-attempts-checkper disattivare il controllo. - PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION: (facoltativo) Specifica il numero di giorni dopo i quali la password scade e l'utente deve crearne una nuova.
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --password-policy-enable-failed-attempts-check \ --password-policy-allowed-failed-attempts=PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS \ --password-policy-password-expiration-duration=PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION
Per rimuovere una policy per le password utente, utilizza il parametro --clear-password-policy.
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
Per visualizzare le norme relative alle password utente, consulta Elenco utenti.
REST v1
Per impostare un criterio per le password utente, utilizza una richiesta PUT con il metodo users:update.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza
- USER_ID: l'ID dell'utente
- PASSWORD: la password dell'utente
- FAILED_ATTEMPTS_CHECK: impostato su
trueper attivare un controllo del numero di tentativi di accesso non riusciti dopo i quali l'account viene bloccato - NUMBER_OF_ATTEMPTS: il numero di tentativi di accesso non riusciti dopo i quali l'account viene bloccato
- PASSWORD_EXPIRATION_DURATION: il numero di giorni dopo i quali la password scade e l'utente deve crearne una nuova
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON della richiesta:
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
"allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
"passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
}
},
}
}Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Per visualizzare le norme relative alle password utente, consulta Elenco utenti.
REST v1beta4
Per impostare un criterio per le password utente, utilizza una richiesta PUT con il metodo users:update.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza
- USER_ID: l'ID dell'utente
- PASSWORD: la password dell'utente
- FAILED_ATTEMPTS_CHECK: impostato su
trueper attivare un controllo del numero di tentativi di accesso non riusciti dopo i quali l'account viene bloccato - NUMBER_OF_ATTEMPTS: il numero di tentativi di accesso non riusciti dopo i quali l'account viene bloccato
- PASSWORD_EXPIRATION_DURATION: il numero di giorni dopo i quali la password scade e l'utente deve crearne una nuova
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON della richiesta:
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
"allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
"passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
}
},
}
}Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Per visualizzare le norme relative alle password utente, consulta Elenco utenti.
Elenca utenti
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Seleziona Utenti dal menu di navigazione SQL.
gcloud
Utilizza il comando gcloud sql users list per elencare gli utenti per questa istanza:
gcloud sql users list \ --instance=INSTANCE_NAME
Il comando restituisce Name, Host e
Type di autenticazione per ogni utente.
Inoltre, per il tipo di autenticazione integrato, vengono restituiti lo stato e le impostazioni del criterio delle password. Ad esempio:
NAME HOST TYPE PASSWORD_POLICY
user1 BUILT_IN {'allowedFailedAttempts': 2,
'enableFailedAttemptsCheck': True,
'passwordExpirationDuration': '7d',
'status': {
'locked': True,
'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z'
}
}
REST v1
Per elencare gli utenti definiti per un'istanza, utilizza una richiesta GET con il metodo users:list.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'ID istanza desiderato
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#usersList",
"items": [
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "sqlserver",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "user-id-1",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "user-id-2",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
...
},
{
...
}
]
}
Se è stata impostata una policy per le password utente, la sezione items della risposta include una sezione passwordPolicy. Il seguente esempio di codice mostra la sezione passwordPolicy.
{
...
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : true,
"allowedFailedAttempts" : 8,
"passwordExpirationDuration" : "7d"
}
},
...
}
REST v1beta4
Per elencare gli utenti definiti per un'istanza, utilizza una richiesta GET con il metodo users:list.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'ID istanza desiderato
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#usersList",
"items": [
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "sqlserver",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "user-id-1",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "user-id-2",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
...
},
{
...
}
]
}
Se è stata impostata una policy per le password utente, la sezione items della risposta include una sezione passwordPolicy. Il seguente esempio di codice mostra la sezione passwordPolicy.
{
...
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : true,
"allowedFailedAttempts" : 8,
"passwordExpirationDuration" : "7d"
}
},
...
}
Client psql
Al prompt psql, elenca gli utenti PostgreSQL:
SELECT * FROM pg_roles;
Aggiungere ruoli di database a un utente esistente
Dopo aver creato un utente integrato, puoi assegnargli ruoli aggiuntivi. Questi ruoli vengono aggiunti a quelli esistenti e non sostituiscono l'insieme di ruoli assegnati all'account utente.
Prima di poter assegnare un ruolo a un utente in Cloud SQL per PostgreSQL, il ruolo deve già esistere. Se utilizzi un ruolo personalizzato, devi prima creare il ruolo nel database PostgreSQL.Per creare un ruolo in PostgreSQL, consulta Ruoli del database.
Non puoi assegnare nessuno dei ruoli di sistema predefiniti elencati in
Ruoli e utenti di sistema Cloud SQL
agli utenti PostgreSQL esistenti, ad eccezione di cloudsqlsuperuser.
gcloud
Per assegnare ruoli a un utente, utilizza il comando
gcloud sql users assign-roles.
gcloud sql users assign-roles USER_NAME \ --instance=INSTANCE_NAME \ --type=BUILT-IN \ --database-roles=ROLE_1, ROLE_2, ..., ROLE_N
Sostituisci quanto segue:
- USER_NAME: il nome utente.
- INSTANCE_NAME: il nome dell'istanza
- ROLE_1, ROLE_2, ..., ROLE_N: il ruolo o i ruoli del database da assegnare all'utente.
REST v1
Per aggiornare un utente, utilizza una richiesta PUT con il metodo users:update.
Quando assegni i ruoli del database, puoi aggiornare i parametri dei criteri per le password utente.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza desiderato
- USER_ID: l'ID dell'utente
- ROLE_1, ROLE_2 ..., ROLE_N: il ruolo o i ruoli del database da assegnare all'utente
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON della richiesta:
{
"name": "USER_ID",
"type": "BUILT-IN",
"databaseRoles": [
"ROLE_1",
"ROLE_2"
]
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2025-10-20T22:44:16.656Z",
"startTime": "2025-10-20T22:44:16.686Z",
"endTime": "2025-10-20T22:44:20.437Z",
"operationType": "UPDATE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Per aggiornare un utente, utilizza una richiesta PUT con il metodo users:update.
Quando assegni i ruoli del database, puoi aggiornare i parametri dei criteri per le password utente.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza desiderato
- USER_ID: l'ID dell'utente
- ROLE_1, ROLE_2, ..., ROLE_N: il ruolo o i ruoli del database da assegnare all'utente
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON della richiesta:
{
"name": "USER_ID",
"type": "BUILT-IN",
"databaseRoles": [
"ROLE_1",
"ROLE_2"
]
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2025-10-20T22:44:16.656Z",
"startTime": "2025-10-20T22:44:16.686Z",
"endTime": "2025-10-20T22:44:20.437Z",
"operationType": "UPDATE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Sostituire i ruoli di database per un utente esistente
Se vuoi sostituire o rimuovere i ruoli del database dall'utente, devi revocare tutti i suoi ruoli esistenti specificando nuovi ruoli del database, se presenti.
Per impostazione predefinita, quando crei un utente PostgreSQL integrato, all'utente viene concesso automaticamente il ruolo cloudsqlsuperuser. Se non vuoi che un utente
mantenga il ruolo cloudsqlsuperuser, revoca i ruoli esistenti dell'utente.
gcloud
Per sostituire i ruoli del database per un utente, revoca i ruoli esistenti
per l'utente e assegna nuovi ruoli. Per sostituire i ruoli del database per un utente,
utilizza il seguente comando
gcloud sql users assign-roles.
gcloud sql users assign-roles USER_NAME \ --instance=INSTANCE_NAME \ --database-roles=ROLE_1,ROLE_2 \ --revoke-existing-roles
Sostituisci quanto segue:
- USER_NAME: il nome utente.
- HOST: il nome host dell'utente come indirizzo IP specifico, intervallo di indirizzi o qualsiasi host (
%). - INSTANCE_NAME: il nome dell'istanza
- ROLE_1, ROLE_2: il nuovo ruolo o i nuovi ruoli del database da assegnare all'utente.
Puoi anche revocare i ruoli esistenti per un utente e assegnare zero ruoli. Ad esempio:
gcloud sql users assign-roles USER_NAME \ --instance=INSTANCE_NAME \ --database-roles= \ --revoke-existing-roles
REST v1
Per aggiornare un utente, utilizza una richiesta PUT con il metodo users:update.
Quando sostituisci i ruoli di database di un utente, puoi aggiornare i parametri della policy delle password utente nella stessa richiesta API.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza desiderato
- USER_ID: l'ID dell'utente
- ROLE_1, ROLE_2 ..., ROLE_N: il nuovo ruolo o i nuovi ruoli del database da assegnare all'utente. Puoi anche specificare un elenco vuoto.
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON della richiesta:
{
"name": "USER_ID",
"type": "BUILT-IN",
"databaseRoles": [
"ROLE_1",
"ROLE_2"
],
"revokeExistingRoles": true
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2025-10-20T22:44:16.656Z",
"startTime": "2025-10-20T22:44:16.686Z",
"endTime": "2025-10-20T22:44:20.437Z",
"operationType": "UPDATE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Per aggiornare un utente, utilizza una richiesta PUT con il metodo users:update.
Quando sostituisci i ruoli di database di un utente, puoi aggiornare i parametri della policy delle password utente nella stessa richiesta API.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza desiderato
- USER_ID: l'ID dell'utente
- ROLE_1, ROLE_2, ..., ROLE_N: il nuovo ruolo o i nuovi ruoli del database da assegnare all'utente. Puoi anche specificare un elenco vuoto.
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corpo JSON della richiesta:
{
"name": "USER_ID",
"type": "BUILT-IN",
"databaseRoles": [
"ROLE_1",
"ROLE_2"
],
"revokeExistingRoles": true
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2025-10-20T22:44:16.656Z",
"startTime": "2025-10-20T22:44:16.686Z",
"endTime": "2025-10-20T22:44:20.437Z",
"operationType": "UPDATE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Modificare la password di un utente
Le password utente possono essere modificate in uno dei seguenti modi.
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Seleziona Utenti dal menu di navigazione SQL.
- Fai clic su Altre azioni
per l'utente che vuoi aggiornare.
- Seleziona Cambia password.
- Specifica una nuova password.
- Fai clic su OK.
gcloud
Utilizza il comando
gcloud sql users set-password per modificare una password.
Sostituisci quanto segue:
- USER_NAME: il nome utente.
- INSTANCE_NAME: il nome dell'istanza.
gcloud sql users set-password USER_NAME \ --instance=INSTANCE_NAME \ --prompt-for-password
REST v1
Per modificare la password di un utente, utilizza una richiesta PUT con il metodo users:update.
La seguente richiesta aggiorna la password per l'account utente
user_name.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'ID istanza desiderato
- user-id: l'ID dell'utente
- password: la nuova password per l'utente
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id
Corpo JSON della richiesta:
{
"name": "user-id",
"password": "password"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
Per modificare la password di un utente, utilizza una richiesta PUT con il metodo users:update.
La seguente richiesta aggiorna la password per l'account utente
user_name.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: il tuo ID progetto
- instance-id: l'ID istanza desiderato
- user-id: l'ID dell'utente
- password: la nuova password per l'utente
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id
Corpo JSON della richiesta:
{
"name": "user-id",
"password": "password"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
Client psql
Al promptpsql, esegui il comando ALTER USER.
- Sblocca l'utente.
ALTER USER USER_NAME WITH LOGIN;
- Modifica la password e inseriscila quando richiesto.
ALTER USER USER_NAME WITH PASSWORD PASSWORD;
Se un utente è bloccato a causa delle impostazioni dei criteri per le password, modifica la password per sbloccarlo. Assicurati che le password, una volta modificate, rispettino le norme relative alle password.
Rimuovere una policy per le password degli utenti
Puoi rimuovere un criterio per le password da un utente con il tipo di autenticazione integrato.
gcloud
Per rimuovere la policy delle password utente, utilizza il comando
gcloud sql users set-password-policy e il parametro --clear-password-policy.
Sostituisci quanto segue:
- USER_NAME: il nome utente
- INSTANCE_NAME: il nome dell'istanza
- HOST: il nome host dell'utente come indirizzo IP specifico, intervallo di indirizzi o qualsiasi host (
%)
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
REST v1
Per rimuovere un criterio per le password utente, utilizza una richiesta PUT con il metodo users:update.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza
- USER_ID: l'ID dell'utente
- PASSWORD: la password dell'utente
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON della richiesta:
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {}
}
}Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Per rimuovere un criterio per le password utente, utilizza una richiesta PUT con il metodo users:update.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza
- USER_ID: l'ID dell'utente
- PASSWORD: la password dell'utente
Metodo HTTP e URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
Corpo JSON della richiesta:
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {}
}
}Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Rimuovere un utente
L'utente predefinito può rimuovere gli utenti.
Prima di rimuovere un utente, devi eliminare tutti gli oggetti di sua proprietà o riassegnarne la proprietà e revocare tutti i privilegi concessi al ruolo su altri oggetti.
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Seleziona Utenti dal menu di navigazione SQL.
- Fai clic su Altre azioni
per l'utente che vuoi
rimuovere. - Seleziona Rimuovi e poi di nuovo Rimuovi.
gcloud
Utilizza il comando
gcloud sql users delete per rimuovere un utente.
Sostituisci quanto segue:
- USER_NAME: il nome utente.
- INSTANCE_NAME: il nome dell'istanza.
gcloud sql users delete USER_NAME \ --instance=INSTANCE_NAME
REST v1
La richiesta riportata di seguito utilizza il metodo users:delete per eliminare l'account utente specificato.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza desiderato
- USERNAME: L'indirizzo email dell'utente o del account di servizio
Metodo HTTP e URL:
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "DELETE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
La richiesta riportata di seguito utilizza il metodo users:delete per eliminare l'account utente specificato.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto
- INSTANCE_ID: l'ID istanza desiderato
- USERNAME: L'indirizzo email dell'utente o del account di servizio
Metodo HTTP e URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "DELETE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Client psql
- Al prompt
psql, elimina l'utente:DROP ROLE USER_NAME;
Per saperne di più sull'istruzione
DROP ROLE, consulta la documentazione di PostgreSQL.
Aggiornare le proprietà utente
Per aggiornare le proprietà utente, ad esempio gli attributi, devi utilizzare il clientpsql.
Per saperne di più, consulta la sezione Database Roles nella
documentazione di PostgreSQL.
Passaggi successivi
- Scopri di più su come Cloud SQL funziona con gli utenti.
- Leggi la documentazione di PostgreSQL sulla creazione dei ruoli.
- Scopri di più sulla connessione alle istanze.