Creazione e gestione di database

Questa pagina contiene informazioni su creazione, elenco ed eliminazione di database SQL Server su un'istanza Cloud SQL.

Un'istanza appena creata ha un database sqlserver.

Per ulteriori informazioni sulla creazione di database SQL Server e argomenti correlati, consulta la documentazione di SQL Server.

Per informazioni sull'impostazione di un valore predefinito per il tipo di collation utilizzato per i database in un'istanza, vedi Creazione di istanze.

Prima di iniziare

Prima di completare le attività in questa pagina, devi:

  • È stata creata un'istanza Cloud SQL. Per saperne di più, consulta la sezione Creazione di istanze.

Se prevedi di utilizzare il client sqlcmd per creare o gestire i tuoi database, devi disporre di:

  • Accesso configurato e connessione all'istanza con un client sqlcmd.

Crea un database sull'istanza Cloud SQL

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 Database dal menu di navigazione SQL.
  4. Fai clic su Crea database.
  5. Nella finestra di dialogo Nuovo database, specifica il nome del database.
  6. Fai clic su Crea.

gcloud

Per informazioni di riferimento, vedi gcloud sql databases create.

Per informazioni sulle regole di confronto in SQL Server, consulta Supporto di regole di confronto e Unicode nella documentazione di SQL Server.

gcloud sql databases create DATABASE_NAME \
--instance=INSTANCE_NAME \
[--charset=CHARSET] \
[--collation=COLLATION]

Terraform

Per creare un database, utilizza una risorsa Terraform.

resource "google_sql_database" "database" {
  name     = "my-database"
  instance = google_sql_database_instance.instance.name
}

Applica le modifiche

Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. 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).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file viene 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 file main.tf appena creato.

    (Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi effettuare 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

  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 questo comando e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform visualizzi il messaggio "Apply complete!".

  3. 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:

  1. Per disattivare 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 questo comando e inserendo yes al prompt:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il comando seguente e inserendo yes al prompt:

    terraform destroy

REST v1

La seguente richiesta utilizza il metodo databases:insert per creare un nuovo database nell'istanza specificata.

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza
  • database-name: il nome di un database all'interno dell'istanza Cloud SQL

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

La seguente richiesta utilizza il metodo databases:insert per creare un nuovo database nell'istanza specificata.

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza
  • database-name: il nome di un database all'interno dell'istanza Cloud SQL

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Elenca i tuoi database

Per elencare tutti i database di un'istanza:

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. Fai clic su Database nel menu a sinistra. La pagina Database elenca i database insieme al tipo di regole di confronto, al set di caratteri e al tipo di database.

gcloud

Per informazioni di riferimento, vedi gcloud sql databases list.

gcloud sql databases list \
--instance=INSTANCE_NAME

REST v1

La seguente richiesta utilizza il metodo databases:list per elencare i database per un'istanza.

Quando elenchi i database utilizzando l'API, vengono visualizzati database modello aggiuntivi e un database di sistema che non vengono visualizzati dalla console. Non puoi eliminare o gestire il database di sistema.

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

La seguente richiesta utilizza il metodo databases:list per elencare i database per un'istanza.

Quando elenchi i database utilizzando l'API, vengono visualizzati database modello aggiuntivi e un database di sistema che non vengono visualizzati dalla console. Non puoi eliminare o gestire il database di sistema.

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Modificare il proprietario di un database

Se vuoi eliminare l'accesso utente associato a un proprietario del database non più attivo, devi prima assegnare un nuovo proprietario del database.

Per aggiungere un nuovo proprietario del database:

gcloud

  1. Connettiti al tuo database e crea due account demo:
          create login TEST_LOGIN with password='TEST_PASSWORD'
          create login REPORT_USER with password='REPORT_USER_PASSWORD'
          GRANT CREATE ANY DATABASE TO TEST_LOGIN AS [CustomerDbRootRole]
          

    Effettua le seguenti sostituzioni:

    • TEST_LOGIN: il nome dell'account di test, ad esempio test-login.
    • TEST_PASSWORD: la password per l'account di test.
    • REPORT_USER: il nome di un secondo account utente, ad esempio report-user. Questo account diventa il nuovo proprietario del database.
    • REPORT_USER_PASSWORD: la password per il secondo account utente.
  2. Connettiti al database utilizzando l'account di test che hai appena creato. Poi, crea un database di test utilizzando il seguente comando:
        CREATE DATABASE TEST_DB
        

    Effettua le seguenti sostituzioni:

    • TEST_DB: il nome del database di test che vuoi creare, ad esempio test-database
    • TEST_LOGIN: il nome dell'account di test, ad esempio test-login.

    Il proprietario del database viene impostato automaticamente sull'account di test.

  3. Connettiti al database utilizzando l'accesso SQL Server. Quindi, esegui questo comando per tentare di eliminare l'accesso TEST_LOGIN:
          drop login TEST_LOGIN
          

    Sostituisci TEST_LOGIN con il nome dell'account di test, ad esempio test-login.

    L'operazione non va a buon fine e viene restituito il seguente errore:

            Login TEST_LOGIN owns one or more database(s). Change
            the owner of the database(s) before dropping the login.
            
  4. Connettiti al database TEST_DB come account REPORT_USER e concedi all'account le autorizzazioni in modo che corrispondano al proprietario esistente.
          GRANT IMPERSONATE on LOGIN::REPORT_USER to TEST_LOGIN
          
  5. Connettiti al database come account di test. Quindi, esegui questo comando per autorizzare il secondo account come proprietario del database:
          ALTER AUTHORIZATION ON DATABASE::TEST_DB TO REPORT_USER
          
  6. Connettiti al database come REPORT_USER e rimuovi le autorizzazioni concesse.
          REVOKE IMPERSONATE on LOGIN::REPORT_USER to TEST_LOGIN
          
  7. Connettiti al database come account SQL Server. Quindi, esegui questo comando per eliminare l'accesso TEST_LOGIN:
          DROP LOGIN TEST_LOGIN
          
    Al termine, viene restituito il seguente messaggio:
          DROP LOGIN for TEST_LOGIN by sqlserver(sqlserver) is successful.
          

Eliminare un database

Per eliminare un database sull'istanza Cloud SQL:

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. Fai clic su Database nel menu a sinistra.
  4. Nell'elenco dei database, trova quello che vuoi eliminare e fai clic sull'icona del cestino.
  5. Nella finestra di dialogo Elimina database, inserisci il nome del database e poi fai clic su Elimina.

gcloud

Per informazioni di riferimento, vedi gcloud sql databases delete.

gcloud sql databases delete DATABASE_NAME \
--instance=INSTANCE_NAME

REST v1

La seguente richiesta utilizza il metodo databases:delete per eliminare il database specificato.

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza
  • database-name: il nome di un database all'interno dell'istanza Cloud SQL

Metodo HTTP e URL:

DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

La seguente richiesta utilizza il metodo databases:delete per eliminare il database specificato.

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza
  • database-name: il nome di un database all'interno dell'istanza Cloud SQL

Metodo HTTP e URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Passaggi successivi

Provalo

Se non conosci Google Cloud, crea un account per valutare le prestazioni di Cloud SQL in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei workload.

Prova Cloud SQL gratuitamente