Gestisci gli utenti con l'autenticazione integrata

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, vedi Crea le 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, quindi procedi nel seguente modo:

    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 MySQL, l'utente predefinito è root@%. Indica un utente di database con il nome utente root, che può connettersi da qualsiasi host (@%).

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 root e seleziona Cambia password. dal menu Altre azioni Icona Altre azioni..

    Considera le disposizioni elencate per la password, che derivano dalla le norme relative alle password per l'istanza.

  5. Fornire una password efficace che si possa ricordare e fai clic su OK.

gcloud

Utilizza la 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 root \
--host=% \
--instance=INSTANCE_NAME \
--prompt-for-password

REST v1

Per aggiornare la password per l'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
  • password: la password dell'utente

Metodo HTTP e URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=root&host=%25

Corpo JSON della richiesta:

{
  "name": "root",
  "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 per l'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
  • password: la password dell'utente

Metodo HTTP e URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=root&host=%25

Corpo JSON della richiesta:

{
  "name": "root",
  "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 database integrato (nome utente e password) o come metodo Utente IAM.

  5. Seleziona Autenticazione integrata (impostazione predefinita) e aggiungi il parametro le seguenti informazioni:
      .
    • Un Nome utente.
    • Facoltativo. Una Password. Specifica una password efficace che sia facile da ricordare.
    • Facoltativo. I criteri relativi alle password utente.
    • Nella sezione Nome host, l'impostazione predefinita è Consenti qualsiasi host, il che significa che l'utente può connettersi da qualsiasi indirizzo IP. Se vuoi, Seleziona Limita l'host per indirizzo IP o intervallo di indirizzi e inserisci un indirizzo IP o un intervallo di indirizzi nella sezione Host. L'utente può quindi connettersi solo dall'indirizzo IP o gli indirizzi IP specificati.
  6. Fai clic su Aggiungi.

Agli utenti creati su istanze che utilizzano MySQL 8.0 e 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.

Agli utenti creati su istanze utilizzando MySQL 5.7 e il metodo di autenticazione di Cloud SQL vengono automaticamente concessi tutti i privilegi, tranne FILE e SUPER. Se devi modificare privilegi per questi utenti, quindi utilizza GRANT o REVOKE nel comando mysql.

gcloud

Per creare un utente, utilizza la gcloud sql users create.

Sostituisci quanto segue:

  • USER_NAME: il nome utente.
  • HOST: nome host dell'utente, come indirizzo IP o indirizzo specifico intervallo o qualsiasi host (%).
  • INSTANCE_NAME: il nome dell'istanza.
  • PASSWORD: la password dell'utente.
gcloud sql users create USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME \
--password=PASSWORD

Agli utenti creati su istanze che utilizzano MySQL 8.0 e 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.

Agli utenti creati su istanze utilizzando MySQL 5.7 e il metodo di autenticazione di Cloud SQL vengono automaticamente concessi tutti i privilegi, tranne FILE e SUPER. Se devi modificare privilegi per questi utenti, quindi utilizza GRANT o REVOKE nel comando mysql.

I limiti di lunghezza del nome utente sono gli stessi per Cloud SQL e per MySQL on-premise; 32 caratteri per MySQL 8.0, 16 caratteri per versioni precedenti.

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 configurazione Terraform a un progetto Google Cloud, completa i passaggi nella le sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito dove 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 in Terraform di configurazione del deployment.

Prepara la directory

Ogni file di configurazione Terraform deve avere una directory (inoltre chiamato modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo all'interno di quella directory. Il nome del file deve contenere .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. Opzione consigliata quando 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 -upgrade :

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform creerà o che l'aggiornamento soddisfi le tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione Terraform eseguendo questo comando e inserendo yes alla richiesta:
    terraform apply

    Attendi finché Terraform non visualizzi 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 create o aggiornate da Terraform.

Elimina le modifiche

Per eliminare le modifiche:

  1. Per disabilitare la protezione dall'eliminazione, nel file di configurazione Terraform imposta la classe Argomento deletion_protection per false.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo il comando seguente inserendo yes alla richiesta:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la tua configurazione Terraform eseguendo questo comando e inserendo yes al prompt:

    terraform destroy

REST v1

Per creare un utente, utilizza una richiesta POST con user: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 MySQL 8.0 e 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.

Agli utenti creati su istanze utilizzando MySQL 5.7 e il metodo di autenticazione di Cloud SQL vengono automaticamente concessi tutti i privilegi, tranne FILE e SUPER. Se devi modificare privilegi per questi utenti, quindi utilizza GRANT o REVOKE nel comando mysql.

I limiti di lunghezza del nome utente sono gli stessi per Cloud SQL e per MySQL on-premise; 32 caratteri per MySQL 8.0, 16 caratteri per versioni precedenti.

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

REST v1beta4

Per creare un utente, utilizza una richiesta POST con user: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 MySQL 8.0 e 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.

Agli utenti creati su istanze utilizzando MySQL 5.7 e il metodo di autenticazione di Cloud SQL vengono automaticamente concessi tutti i privilegi, tranne FILE e SUPER. Se devi modificare privilegi per questi utenti, quindi utilizza GRANT o REVOKE nel comando mysql.

I limiti di lunghezza del nome utente sono gli stessi per Cloud SQL e per MySQL on-premise; 32 caratteri per MySQL 8.0, 16 caratteri per versioni precedenti.

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

Client mysql

  1. Per creare un utente, al prompt di mysql, usa il seguente Istruzione CREATE USER:
      CREATE USER 'USER_NAME'@'%'
         IDENTIFIED BY 'PASSWORD';
      

    Se vuoi, aggiungi i parametri dei criteri relativi alle password utente.

  2. Puoi confermare la creazione dell'utente visualizzando la tabella utenti:
    SELECT user, host FROM mysql.user;
    
    Per un'istanza di seconda generazione, l'output è simile a questo esempio:
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | root     | %         |
    | newuser  | %         |
    +----------+-----------+
    1 row in set (0.01 sec)
    
  3. Concedi all'utente i privilegi GRANT l'Informativa. Per ulteriori informazioni, vedi Privilegi forniti da MySQL.
  4. Fai svuotare la tabella mysql.user per assicurarti che la modifica venga mantenuta:
      FLUSH TABLES mysql.user;
    

Impostare un criterio per le password utente

Puoi impostare un criterio per le password con un tipo di autenticazione integrato.

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 di cui vuoi modificare il criterio.
  5. Seleziona Modifica criterio relativo alle password.
  6. Nella sezione Criterio password, seleziona una o più delle opzioni le seguenti opzioni:
      .
    • Imposta la password per la scadenza: specifica il numero di giorni dopo i quali la password scade e l'utente deve crearne una nuova.
    • Blocca dopo tentativi non riusciti: specifica il numero di volte in cui un utente può provare a inserire la password in modo errato prima del blocco dell'account.

      Supportata solo su Cloud SQL per MySQL 8.0.

    • Richiedi password corrente quando la password viene modificata: richiede agli utenti di inserire la propria password esistente quando tentano di cambiarla.

gcloud

Per impostare i criteri relativi alle password degli utenti, utilizza gcloud sql users set-password-policy.

Crea con --password-policy-enable-password-verification obbligatorio per gli utenti a inserire la password esistente quando tentano di modificare la password. Per disattivare questo parametro, utilizza --no-password-policy-enable-password-verification.

Sostituisci quanto segue:

  • USER_NAME: il nome utente.
  • INSTANCE_NAME: il nome dell'istanza.
  • HOST: nome host dell'utente, come indirizzo IP o indirizzo specifico intervallo o qualsiasi host (%).
  • 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 bloccato. Usa --password-policy-enable-failed-attempts-check per attiva e --no-password-policy-enable-failed-attempts-check per disattivare il controllo.
  • PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION: facoltativo: Specifica il numero di giorni dopo il quale la password scade e l'utente deve crearne uno nuovo.
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 \
--password-policy-enable-password-verification

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 l'utente i criteri relativi alle password, consulta Elencare gli utenti.

REST v1

Per impostare un criterio per le password utente, utilizza una richiesta PUT con 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 viene bloccato
  • NUMBER_OF_ATTEMPTS: il numero di tentativi di accesso non riusciti dopo i quali l'account è bloccato
  • PASSWORD_EXPIRATION_DURATION: il numero di giorni dopo il quale scade la password e l'utente deve crearne uno nuovo
  • VERIFY_PASSWORD: imposta su true per raggiungere obbligatorio per gli utenti a inserire la password esistente quando tentano di modificare la password

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",
        "enablePasswordVerification" : "VERIFY_PASSWORD"
      }
    },
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Per visualizzare l'utente i criteri relativi alle password, consulta Elencare gli utenti.

REST v1beta4

Per impostare un criterio per le password utente, utilizza una richiesta PUT con 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 viene bloccato
  • NUMBER_OF_ATTEMPTS: il numero di tentativi di accesso non riusciti dopo i quali l'account è bloccato
  • PASSWORD_EXPIRATION_DURATION: il numero di giorni dopo il quale scade la password e l'utente deve crearne uno nuovo
  • VERIFY_PASSWORD: imposta su true per raggiungere obbligatorio per gli utenti a inserire la password esistente quando tentano di modificare la password

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",
        "enablePasswordVerification" : "VERIFY_PASSWORD"
      }
    },
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Per visualizzare l'utente i criteri relativi alle password, consulta Elencare gli utenti.

Client mysql

Per impostare un criterio per le password utente, quando richiesto di mysql, usa il seguente Istruzione ALTER USER:

ALTER USER USER_NAME
    FAILED_LOGIN_ATTEMPTS ALLOWED_FAILED_ATTEMPTS
    PASSWORD EXPIRE INTERVAL PASSWORD_EXPIRATION_DURATION DAY
    PASSWORD REQUIRE CURRENT;

Sostituisci quanto segue:

  • USER_NAME: il nome utente.
  • 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 bloccato.
  • PASSWORD_EXPIRATION_DURATION: facoltativo: Specifica il numero di giorni dopo il quale la password scade e l'utente deve crearne uno nuovo.

Utilizza l'opzione PASSWORD REQUIRE CURRENT per realizzarla obbligatorio per gli utenti a inserire la password esistente quando tentano di modificare la password.

Per visualizzare il criterio relativo alle password degli utenti, 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.

    L'elenco mostra User name, Host name e Authentication tipo per ogni utente.

    Inoltre, per il tipo di autenticazione integrato, È indicato anche Password status.

gcloud

Utilizza la 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 autenticazione Type per ogni utente.

Inoltre, per il tipo di autenticazione integrato, il criterio relativo alle password le impostazioni e lo stato. 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 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 un criterio relativo alle password utente è stato impostato, la sezione items della risposta include un passwordPolicy . Il seguente esempio di codice mostra la sezione passwordPolicy.

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d",
      "enablePasswordVerification" : true
    }
  },
  ...
}
  

REST v1beta4

Per elencare gli utenti definiti per un'istanza, utilizza una richiesta GET con 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 un criterio relativo alle password utente è stato impostato, la sezione items della risposta include un passwordPolicy . Il seguente esempio di codice mostra la sezione passwordPolicy.

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d",
      "enablePasswordVerification" : true
    }
  },
  ...
}
  

Client mysql

Per elencare gli utenti MySQL, al prompt mysql, utilizza il seguente Istruzione SELECT:

SELECT user, host FROM mysql.user;

Per un'istanza di seconda generazione con solo l'account utente root configurato: l'output è simile a questo esempio:

+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
+------+-----------+
1 row in set (0.01 sec)

Questo esempio mostra gli utenti di un'istanza con l'utente root. Questo utente può connettersi da qualsiasi host (%). Il campo della password mostra l'hash della password.

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.

    Inoltre, se vuoi continuare a utilizzare la password precedente, seleziona la casella di controllo Conserva la password corrente.

  7. Fai clic su OK.

gcloud

Utilizza la gcloud sql users set-password per modificare una password.

Sostituisci quanto segue:

  • USER_NAME: il nome utente.
  • HOST: nome host dell'utente, come indirizzo IP o indirizzo specifico intervallo o qualsiasi host (%).
  • INSTANCE_NAME: il nome dell'istanza.
  • PASSWORD: una password. Deve soddisfare i requisiti dei criteri relativi alle password, se impostati.

Facoltativamente, per MySQL 8.0, puoi continuare a consentire all'utente di utilizzare la versione precedente con l'opzione --retain-password. Per ignorare una password precedente, utilizza l'opzione --discard-dual-password.

gcloud sql users set-password USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME \
--password=PASSWORD

REST v1

Per modificare la password di un utente, utilizza una richiesta PUT con il users:update.

La seguente richiesta aggiorna la password dell'account utente user_name'@'%. Se l'utente ha un host diverso, devi modificare la chiamata con l'host corretto.

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
  • dual-password: uno di questi valori enum:
    • DUAL_PASSWORD: l'utente può continuare a utilizzare la password precedente.
    • NO_DUAL_PASSWORD: l'utente non può utilizzare la password precedente.
    • NO_MODIFY_DUAL_PASSWORD: lo stato della doppia password rimane invariato.

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 users:update.

La seguente richiesta aggiorna la password dell'account utente user_name'@'%. Se l'utente ha un host diverso, devi modificare la chiamata con l'host corretto.

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
  • dual-password: uno di questi valori enum:
    • DUAL_PASSWORD: l'utente può continuare a utilizzare la password precedente.
    • NO_DUAL_PASSWORD: l'utente non può utilizzare la password precedente.
    • NO_MODIFY_DUAL_PASSWORD: lo stato della doppia password rimane invariato.

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 mysql

  1. Per cambiare la password, quando richiesto da mysql, usa Istruzione SET PASSWORD:
    SET PASSWORD FOR USER_NAME = PASSWORD('auth_string');
    
  2. Esegui il flush della tabella mysql.user per assicurarti che la modifica persiste:
    FLUSH TABLES mysql.user;
    

Se un utente non riesce più ad accedere a causa delle impostazioni dei criteri delle password, cambia la password. per sbloccarle. 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 un tipo di autenticazione integrato.

gcloud

Per rimuovere il criterio relativo alle password utente, utilizza 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 o indirizzo specifico intervallo 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 relativo alle password utente, utilizza una richiesta PUT con 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 relativo alle password utente, utilizza una richiesta PUT con 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 rilasciare tutti gli oggetti di sua proprietà o riassegnarne proprietà e revoca 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 desiderato da rimuovere.
  5. Seleziona Rimuovi, quindi seleziona nuovamente Rimuovi.

gcloud

Utilizza la gcloud sql users delete per rimuovere un utente.

Sostituisci quanto segue:

  • USER_NAME: il nome utente.
  • HOST: nome host dell'utente, come indirizzo IP o indirizzo specifico intervallo o qualsiasi host (%).
  • INSTANCE_NAME: il nome dell'istanza.
gcloud sql users delete USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME

REST v1

La richiesta riportata di seguito utilizza 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 riportata di seguito utilizza 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 mysql

  1. Per eliminare un utente, al prompt di mysql, usa Istruzione DROP USER:
    DROP USER 'USER_NAME'@'HOST_NAME';
    
  2. Fai svuotare la tabella mysql.user per assicurarti che la modifica venga mantenuta:
    FLUSH TABLES mysql.user;
    

Aggiorna proprietà utente

Per aggiornare le proprietà utente, come l'host o i privilegi, devi utilizzare l'mysql di alto profilo. Per ulteriori informazioni, vedi MySQL User Account Management in MySQL documentazione.

Passaggi successivi