Datenbanken erstellen und verwalten

Diese Seite enthält Informationen zum Erstellen, Auflisten und Löschen von SQL Server-Datenbanken auf einer Cloud SQL-Instanz.

Eine neu erstellte Instanz hat eine sqlserver-Datenbank.

Hinweise zum Erstellen von SQL Server-Datenbanken und weitere Informationen finden Sie in der SQL Server-Dokumentation.

Informationen zum Festlegen eines Standardwerts für die Art der Sortierung, die für die Datenbanken in einer Instanz verwendet wird, finden Sie unter Instanzen erstellen.

Vorbereitung

Bevor Sie die Aufgaben auf dieser Seite ausführen, müssen Sie:

  • Erstellen Sie eine Cloud SQL-Instanz. Weitere Informationen finden Sie unter Instanzen erstellen.

Wenn Sie den sqlcmd-Client verwenden möchten, um Datenbanken zu erstellen oder zu verwalten, müssen Sie Folgendes ausführen:

  • Konfigurieren Sie den Zugriff auf die Instanz und stellen Sie mit einem sqlcmd-Client eine Verbindung zu dieser her.

So erstellen Sie eine Datenbank in der Cloud SQL-Instanz:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Wählen Sie im SQL-Navigationsmenü die Option Datenbanken aus.
  4. Klicken Sie auf Datenbank erstellen.
  5. Geben Sie im Dialogfeld Neue Datenbank den Namen der Datenbank ein.
  6. Klicken Sie auf Erstellen.

gcloud

Weitere Informationen finden Sie unter gcloud sql databases create.

Weitere Informationen zu Sortierungen in SQL Server finden Sie in der SQL Server-Dokumentation unter Unterstützung von Sortierungen und Unicode.

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

Terraform

Verwenden Sie zum Erstellen einer Datenbank eine Terraform-Ressource.

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

Änderungen anwenden

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud -Projekt anzuwenden.

Cloud Shell vorbereiten

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Standardprojekt Google Cloud fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

    Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

Verzeichnis vorbereiten

Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).

  1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf. In dieser Anleitung wird die Datei als main.tf bezeichnet.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.

    Kopieren Sie den Beispielcode in das neu erstellte main.tf.

    Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.

  3. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  4. Speichern Sie die Änderungen.
  5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
    terraform init

    Fügen Sie optional die Option -upgrade ein, um die neueste Google-Anbieterversion zu verwenden:

    terraform init -upgrade

Änderungen anwenden

  1. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
    terraform plan

    Korrigieren Sie die Konfiguration nach Bedarf.

  2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply

    Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

  3. Öffnen Sie Ihr Google Cloud Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

Änderungen löschen

So löschen Sie das Projekt:

  1. Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument deletion_protection auf false.
    deletion_protection =  "false"
  2. Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply
  1. Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und yes an der Eingabeaufforderung eingeben:

    terraform destroy

REST Version 1

Die folgende Anfrage verwendet die Methode databases:insert, um eine neue Datenbank auf der angegebenen Instanz zu erstellen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • database-name: der Name einer Datenbank in der Cloud SQL-Instanz

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

REST v1beta4

Die folgende Anfrage verwendet die Methode databases:insert, um eine neue Datenbank auf der angegebenen Instanz zu erstellen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • database-name: der Name einer Datenbank in der Cloud SQL-Instanz

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Datenbanken auflisten

So können Sie alle Datenbanken in einer Instanz auflisten lassen:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Klicken Sie im linken Menü auf Datenbanken. Auf der Seite Datenbanken werden Datenbanken mit ihrem Sortiertyp, Zeichensatz und Datenbanktyp aufgeführt.

gcloud

Weitere Informationen finden Sie unter gcloud sql databases list.

gcloud sql databases list \
--instance=INSTANCE_NAME

REST Version 1

Die folgende Anfrage verwendet die Methode databases:list, um die Datenbanken für eine Instanz aufzulisten.

Wenn Sie die Datenbanken mithilfe der API auflisten lassen, finden Sie zusätzliche Datenbankvorlagen und eine Systemdatenbank vor, die von der Console nicht angezeigt werden. Sie können die Systemdatenbank weder löschen noch verwalten.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID

HTTP-Methode und URL:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort erhalten, die in etwa so aussieht:

REST v1beta4

Die folgende Anfrage verwendet die Methode databases:list, um die Datenbanken für eine Instanz aufzulisten.

Wenn Sie die Datenbanken mithilfe der API auflisten lassen, finden Sie zusätzliche Datenbankvorlagen und eine Systemdatenbank vor, die von der Console nicht angezeigt werden. Sie können die Systemdatenbank weder löschen noch verwalten.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID

HTTP-Methode und URL:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort erhalten, die in etwa so aussieht:

Datenbankinhaber ändern

Wenn Sie die Nutzeranmeldung löschen möchten, die mit einem Datenbankinhaber verknüpft ist, der nicht mehr aktiv ist, müssen Sie zuerst einen neuen Datenbankinhaber zuweisen.

So fügen Sie einen neuen Datenbankinhaber hinzu:

gcloud

  1. Stellen Sie eine Verbindung zu Ihrer Datenbank her und erstellen Sie zwei Demokonten:
          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]
          

    Ersetzen Sie die folgenden Werte:

    • TEST_LOGIN: Der Name des Testkontos, z. B. test-login.
    • TEST_PASSWORD: Das Passwort für das Testkonto.
    • REPORT_USER: Der Name eines zweiten Nutzerkontos, z. B. report-user. Dieses Konto wird der neue Datenbankinhaber.
    • REPORT_USER_PASSWORD: Das Passwort für das zweite Nutzerkonto.
  2. Stellen Sie mit dem gerade erstellten Testkonto eine Verbindung zu Ihrer Datenbank her. Erstellen Sie dann mit dem folgenden Befehl eine Testdatenbank:
        CREATE DATABASE TEST_DB
        

    Ersetzen Sie die folgenden Werte:

    • TEST_DB: Der Name der Testdatenbank, die Sie erstellen möchten, z. B. test-database
    • TEST_LOGIN: Der Name des Testkontos, z. B. test-login.

    Der Datenbankinhaber wird automatisch auf das Testkonto festgelegt.

  3. Stellen Sie mit der SQL Server-Anmeldung eine Verbindung zur Datenbank her. Führen Sie dann den folgenden Befehl aus, um zu versuchen, die Anmeldung TEST_LOGIN zu löschen:
          drop login TEST_LOGIN
          

    Ersetzen Sie TEST_LOGIN durch den Namen des Testkontos, z. B. test-login.

    Der Vorgang schlägt fehl und der folgende Fehler wird zurückgegeben:

            Login TEST_LOGIN owns one or more database(s). Change
            the owner of the database(s) before dropping the login.
            
  4. Stellen Sie als REPORT_USER-Konto eine Verbindung zur TEST_DB-Datenbank her und gewähren Sie dem Konto Berechtigungen, die denen des vorhandenen Inhabers entsprechen.
          GRANT IMPERSONATE on LOGIN::REPORT_USER to TEST_LOGIN
          
  5. Stellen Sie als Testkonto eine Verbindung zur Datenbank her. Führen Sie dann den folgenden Befehl aus, um das zweite Konto als Datenbankinhaber zu autorisieren:
          ALTER AUTHORIZATION ON DATABASE::TEST_DB TO REPORT_USER
          
  6. Stellen Sie eine Verbindung zur Datenbank als REPORT_USER her und entfernen Sie alle gewährten Berechtigungen.
          REVOKE IMPERSONATE on LOGIN::REPORT_USER to TEST_LOGIN
          
  7. Stellen Sie als SQL Server-Konto eine Verbindung zur Datenbank her. Führen Sie dann den folgenden Befehl aus, um die TEST_LOGIN-Anmeldung zu entfernen:
          DROP LOGIN TEST_LOGIN
          
    Wenn der Vorgang abgeschlossen ist, wird die folgende Meldung zurückgegeben:
          DROP LOGIN for TEST_LOGIN by sqlserver(sqlserver) is successful.
          

Datenbank löschen

So löschen Sie eine Datenbank aus der Cloud SQL-Instanz:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Klicken Sie im linken Menü auf Datenbanken.
  4. Suchen Sie in der Liste die Datenbank, die Sie löschen möchten, und klicken Sie auf das Papierkorb-Symbol.
  5. Geben Sie im Dialogfeld Datenbank löschen den Namen der Datenbank ein und klicken Sie auf Löschen.

gcloud

Weitere Informationen finden Sie unter gcloud sql databases delete.

gcloud sql databases delete DATABASE_NAME \
--instance=INSTANCE_NAME

REST Version 1

Die folgende Anfrage verwendet die Methode databases:delete, um die angegebene Datenbank zu löschen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • database-name: der Name einer Datenbank in der Cloud SQL-Instanz

HTTP-Methode und URL:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort erhalten, die in etwa so aussieht:

REST v1beta4

Die folgende Anfrage verwendet die Methode databases:delete, um die angegebene Datenbank zu löschen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • database-name: der Name einer Datenbank in der Cloud SQL-Instanz

HTTP-Methode und URL:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort erhalten, die in etwa so aussieht:

Nächste Schritte

Jetzt testen

Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit von Cloud SQL in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.

Cloud SQL kostenlos testen