Creazione e gestione di utenti

Questa pagina descrive come attivare e utilizzare l'autenticazione integrata di Cloud SQL.

Per ulteriori informazioni sugli utenti che crei utilizzando Cloud SQL, consulta Altri utenti di SQL Server.

Prima di creare gli utenti

  1. Creare un'istanza di Cloud SQL. Per maggiori informazioni, consulta Creare istanze.
  2. Se prevedi di utilizzare il client di amministrazione del database per gestire gli utenti, configura l'utente predefinito nell'istanza impostando la password. Vedi Impostare la password per l'account utente predefinito.

Impostare 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 SQL Server, l'utente predefinito è sqlserver.

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 Utenti dal menu di navigazione SQL.
  4. Trova l'utente sqlserver e seleziona Cambia password dal menu Altre azioni Icona Altre azioni..
  5. Fornisci una password efficace 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 sqlserver \
--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 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, 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 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.

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 Utenti dal menu di navigazione SQL.
  4. Fai clic su Aggiungi account utente.
  5. Nella pagina Aggiungi un account utente all'istanza instance_name, aggiungi le seguenti informazioni:
    • Un nome utente.
    • (Facoltativo) Una Password.
  6. Fai clic su Aggiungi.

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

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

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 in 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

    Se imposti valori espliciti nel file di configurazione Terraform, le variabili di ambiente vengono sostituite.

Prepara la directory

Ogni file di configurazione Terraform deve avere una propria directory (detta 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 è indicato come 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 file main.tf appena creato.

    Se vuoi, 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. 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.

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

    Attendi finché Terraform non visualizza il messaggio "Applicazione completata".

  3. Apri il progetto Google Cloud 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:

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

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

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 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: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"
}

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

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 Utenti dal menu di navigazione SQL.

gcloud

Utilizza il comando gcloud sql users list per elencare gli utenti di questa istanza:

gcloud sql users list \
--instance=INSTANCE_NAME

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 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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

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 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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

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 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 cambiare 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, usa 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 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, usa 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 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"
}

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 gli eventuali privilegi concessi dal ruolo per 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 Utenti dal menu di navigazione SQL.
  4. Fai clic su Altre azioni Icona Altre azioni. per l'utente che vuoi rimuovere.
  5. Seleziona Rimuovi, quindi 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 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 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 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 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"
}

Aggiorna le proprietà utente

Per informazioni relative ai ruoli a livello di database in SQL Server, consulta Utilizzo dei ruoli a livello di database nella documentazione di SQL Server.

Passaggi successivi