Creazione e gestione di utenti

In questa pagina viene descritto come abilitare e utilizzare l'autenticazione integrata di Cloud SQL.

Per una panoramica, vedi Autenticazione dei database integrata di Cloud SQL.

Prima di creare gli utenti

  1. Creare un'istanza di Cloud SQL. Per ulteriori informazioni, consulta Creare istanze.
  2. Abilita i criteri relativi alle password per l'istanza. Per saperne di più, consulta Criteri per le password dell'istanza.
  3. Se prevedi di utilizzare il client amministrativo del database per gestire gli utenti, segui questi passaggi:

    1. Connetti il client alla tua istanza. Vedi Opzioni di connessione per applicazioni esterne.

    2. Configura l'utente predefinito nell'istanza impostando la password. Vedi Impostare 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

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Seleziona Users (Utenti) dal menu di navigazione SQL.
  4. Trova l'utente postgres e seleziona Cambia password dal menu Altre azioni Icona Altre azioni..
  5. Fornisci una password efficace che sia facile da 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, effettua le seguenti sostituzioni:

  • 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 delle seguenti 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, effettua le seguenti sostituzioni:

  • 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 delle seguenti 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.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Seleziona Users (Utenti) dal menu di navigazione SQL.
  4. Fai clic su Aggiungi account utente.

    Nella pagina Aggiungi un account utente all'istanza instance_name, puoi scegliere se l'utente deve eseguire l'autenticazione con il metodo di database integrato (nome utente e password) o come utente IAM.

  5. Seleziona Autenticazione integrata (impostazione predefinita) e aggiungi le seguenti informazioni:
    • Un Nome utente.
    • Facoltativo. Una Password. Specifica una password efficace che sia facile da ricordare.
  6. Fai clic su Aggiungi.

Agli utenti creati su istanze che utilizzano il metodo di autenticazione di Cloud SQL viene concesso automaticamente il ruolo cloudsqlsuperuser e i seguenti privilegi sono associati a questo ruolo: CREATEROLE, CREATEDB e LOGIN.

Se devi modificare gli attributi per 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.

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 dell'utente.
gcloud sql users create USER_NAME \
--instance=INSTANCE_NAME \
--password=PASSWORD

Agli utenti creati su istanze che utilizzano il metodo di autenticazione di Cloud SQL viene concesso automaticamente il ruolo cloudsqlsuperuser e i seguenti privilegi sono associati a questo ruolo: CREATEROLE, CREATEDB e LOGIN.

Se devi modificare gli attributi per 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.

I limiti di lunghezza dei nomi utente sono gli stessi per Cloud SQL e per PostgreSQL on-premise.

Quando crei un utente, puoi aggiungere parametri dei criteri delle password utente.

Terraform

Per creare un utente, utilizza una risorsa Terraform.

resource "random_password" "pwd" {
  length  = 16
  special = false
}

resource "google_sql_user" "user" {
  name     = "user"
  instance = google_sql_database_instance.instance.name
  password = random_password.pwd.result
}

Applica le modifiche

Per applicare la tua configurazione Terraform a un progetto Google Cloud, completa i passaggi nelle sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito a 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.

Prepara la directory

Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome del file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel nuovo oggetto main.tf.

    Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata se lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init

    Facoltativamente, per utilizzare la versione più recente del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà soddisfino le tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione Terraform eseguendo questo comando e inserendo yes al prompt:
    terraform apply

    Attendi finché in Terraform non viene visualizzato il messaggio "Applicazione completata!".

  3. Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nella UI per assicurarti che Terraform le abbia create o aggiornate.

Elimina le modifiche

Per eliminare le modifiche:

  1. Per disabilitare la protezione dall'eliminazione, imposta l'argomento deletion_protection nel file di configurazione di Terraform su false.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo questo comando e inserendo yes al prompt:
    terraform apply
  1. Per rimuovere le risorse applicate in precedenza con la tua configurazione Terraform, esegui questo comando e inserisci yes al 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, effettua le seguenti sostituzioni:

  • 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:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users

Corpo JSON della richiesta:

{
  "name": "user-id",
  "password": "password"
}

Per inviare la richiesta, espandi una delle seguenti 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:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22: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"
}

Agli utenti creati su istanze che utilizzano il metodo di autenticazione di Cloud SQL viene concesso automaticamente il ruolo cloudsqlsuperuser e i seguenti privilegi sono associati a questo ruolo: CREATEROLE, CREATEDB e LOGIN.

Se devi modificare gli attributi per 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.

I limiti di lunghezza dei nomi utente sono gli stessi per Cloud SQL e per PostgreSQL on-premise.

Quando crei un utente, puoi aggiungere parametri dei criteri delle password utente.

REST v1beta4

Per creare un utente, utilizza una richiesta POST con il metodo users:insert.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • 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:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

Corpo JSON della richiesta:

{
  "name": "user-id",
  "password": "password"
}

Per inviare la richiesta, espandi una delle seguenti 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:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22: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"
}

Agli utenti creati su istanze che utilizzano il metodo di autenticazione di Cloud SQL viene concesso automaticamente il ruolo cloudsqlsuperuser e i seguenti privilegi sono associati a questo ruolo: CREATEROLE, CREATEDB e LOGIN.

Se devi modificare gli attributi per 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.

I limiti di lunghezza dei nomi utente sono gli stessi per Cloud SQL e per PostgreSQL on-premise.

Quando crei un utente, puoi aggiungere parametri dei criteri delle password utente.

Client psql

  1. Al prompt di psql, crea l'utente:
      CREATE USER USER_NAME
          WITH PASSWORD PASSWORD
          ATTRIBUTE1
          ATTRIBUTE2...;
      

    Inserisci la password quando richiesto.

    Per ulteriori informazioni sugli attributi dei ruoli, consulta la documentazione di PostgreSQL.

  2. Puoi confermare la creazione dell'utente visualizzando la tabella utenti:
      SELECT * FROM pg_roles;
      

Impostare un criterio per le password utente

Puoi impostare un criterio per le password con l'autenticazione integrata.

gcloud

Per impostare i criteri relativi alle 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: nome host dell'utente come indirizzo IP, intervallo di indirizzi o qualsiasi host (%) specifico.
  • PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS (Facoltativo) Il numero di volte in cui un utente può provare a inserire la password in modo errato prima che l'account venga bloccato. Usa --password-policy-enable-failed-attempts-check per abilitare e --no-password-policy-enable-failed-attempts-check per disabilitare il controllo.
  • PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION: facoltativo: specifica il numero di giorni dopo il quale 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 un criterio 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 il criterio delle password utente, vedi Elencare gli 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, effettua le seguenti sostituzioni:

  • 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: imposta su true per attivare un controllo del numero di tentativi di accesso non riusciti dopo i quali l'account è 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 il quale 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 delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Per visualizzare il criterio delle password utente, vedi Elencare gli 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, effettua le seguenti sostituzioni:

  • 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: imposta su true per attivare un controllo del numero di tentativi di accesso non riusciti dopo i quali l'account è 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 il quale 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 delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Per visualizzare il criterio delle password utente, vedi Elencare gli utenti.

Elenca utenti

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Seleziona Users (Utenti) dal menu di navigazione SQL.

gcloud

Usa 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 l'autenticazione Type per ogni utente.

Inoltre, per il tipo di autenticazione integrato, vengono restituiti lo stato e le impostazioni dei criteri relativi alle 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, effettua le seguenti sostituzioni:

  • 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 delle seguenti 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 è stato configurato un criterio 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, effettua le seguenti sostituzioni:

  • 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 delle seguenti 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 è stato configurato un criterio 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;

Modificare la password di un utente

Le password utente possono essere modificate in uno dei seguenti modi.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Seleziona Users (Utenti) dal menu di navigazione SQL.
  4. Fai clic su altre azioni Icona Altre azioni. per l'utente che vuoi aggiornare.
  5. Seleziona Cambia password.
  6. Specifica una nuova password.
  7. 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 dell'account utente user_name.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • 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",
  "retainedPassword" : "dual-password"
}

Per inviare la richiesta, espandi una delle seguenti 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 dell'account utente user_name.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • 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",
  "retainedPassword" : "dual-password"
}

Per inviare la richiesta, espandi una delle seguenti 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

Nel prompt psql, esegui il comando ALTER USER.
  1. Sbloccare l'utente.
    ALTER USER USER_NAME WITH LOGIN;
    
  2. Modifica la password e inseriscila quando richiesto.
    ALTER USER USER_NAME WITH PASSWORD PASSWORD;
    

Se un utente non riesce più ad accedere a causa delle impostazioni dei criteri delle password, modifica la password per sbloccarlo. Assicurati che le password, quando modificate, rispettino i relativi criteri.

Rimuovere un criterio per le password utente

Puoi rimuovere un criterio relativo alle password per un utente con il tipo di autenticazione integrato.

gcloud

Per rimuovere il criterio delle password utente, utilizza il comando gcloud sql users set-password-policy e il parametro --clear-password-policy.

Sostituisci quanto segue:

  • USER_NAME: nome utente
  • INSTANCE_NAME: il nome dell'istanza
  • HOST: nome host dell'utente come indirizzo IP, intervallo di indirizzi o qualsiasi host (%) specifico
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

REST v1

Per rimuovere un criterio delle password utente, utilizza una richiesta PUT con il metodo users:update.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • 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 delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Per rimuovere un criterio delle password utente, utilizza una richiesta PUT con il metodo users:update.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • 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 delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Rimuovere un utente

L'utente predefinito può rimuovere utenti.

Prima di rimuovere un utente, devi abbandonare tutti gli oggetti di sua proprietà o riassegnarne la proprietà e revocare gli eventuali privilegi concessi al ruolo su altri oggetti.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Seleziona Users (Utenti) dal menu di navigazione SQL.
  4. Fai clic su altre azioni Icona Altre azioni. per l'utente da rimuovere.
  5. Seleziona Rimuovi, quindi seleziona nuovamente 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 seguente utilizza il metodo users:delete per eliminare l'account utente specificato.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • INSTANCE_ID: l'ID istanza desiderato
  • USERNAME: l'indirizzo email dell'account utente o 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 delle seguenti 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 seguente utilizza il metodo users:delete per eliminare l'account utente specificato.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • INSTANCE_ID: l'ID istanza desiderato
  • USERNAME: l'indirizzo email dell'account utente o 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 delle seguenti 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

  1. Al prompt di psql, elimina l'utente:
    DROP ROLE USER_NAME;
    

    Per ulteriori informazioni sull'istruzione DROP ROLE, consulta la documentazione di PostgreSQL.

Aggiorna proprietà utente

Per aggiornare le proprietà utente come gli attributi, devi utilizzare il client psql. Per ulteriori informazioni, vedi Ruoli database nella documentazione di PostgreSQL.

Passaggi successivi