Nutzer erstellen und verwalten

Auf dieser Seite wird beschrieben, wie Sie die integrierte Authentifizierung von Cloud SQL aktivieren und verwenden.

Eine Übersicht finden Sie unter Integrierte Datenbankauthentifizierung mit Cloud SQL.

Vor dem Erstellen von Nutzern

  1. Cloud SQL-Instanz erstellen Weitere Informationen finden Sie unter Instanzen erstellen.
  2. Aktivieren Sie Passwortrichtlinien für die Instanz. Weitere Informationen finden Sie unter Richtlinien für Instanzpasswörter.
  3. Wenn Sie den administrativen Client Ihrer Datenbank für die Nutzerverwaltung verwenden möchten, gehen Sie so vor:

    1. Verbinden Sie den Client mit Ihrer Instanz. Siehe Verbindungsoptionen für externe Anwendungen.

    2. Konfigurieren Sie den Standardnutzer auf der Instanz. Legen Sie dazu das Passwort fest. Weitere Informationen finden Sie unter Passwort für das Standardnutzerkonto festlegen.

Passwort für das Standardnutzerkonto festlegen

Wenn Sie eine neue Cloud SQL-Instanz erstellen, müssen Sie ein Passwort für das Standardnutzerkonto festlegen, bevor Sie eine Verbindung zur Instanz herstellen können.

Für Cloud SQL for PostgreSQL ist postgres der Standardnutzer.

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 Seite Übersicht einer Instanz zu öffnen.
  3. Wählen Sie im SQL-Navigationsmenü die Option Nutzer aus.
  4. Suchen Sie den Nutzer postgres und wählen Sie im Dreipunkt-Menü Dreipunkt-Symbol die Option Passwort ändern aus.
  5. Geben Sie ein starkes Passwort ein, das Sie sich gut merken können, und klicken Sie auf OK.

gcloud

Verwenden Sie den Befehl gcloud sql users set-password, um das Passwort für den Standardnutzer festzulegen.

Ersetzen Sie INSTANCE_NAME durch den Namen der Instanz, bevor Sie den Befehl ausführen.

gcloud sql users set-password postgres \
--instance=INSTANCE_NAME \
--prompt-for-password

REST Version 1

Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um das Passwort für das Standardnutzerkonto zu aktualisieren.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers
  • password: das Passwort für den Nutzer

HTTP-Methode und URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

JSON-Text anfordern:

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

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "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

Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um das Passwort für das Standardnutzerkonto zu aktualisieren.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers
  • password: das Passwort für den Nutzer

HTTP-Methode und URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

JSON-Text anfordern:

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

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

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

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

Nutzer erstellen

Nachdem Sie das Standardnutzerkonto eingerichtet haben, können Sie weitere Nutzer erstellen.

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 Seite Übersicht einer Instanz zu öffnen.
  3. Wählen Sie im SQL-Navigationsmenü die Option Nutzer aus.
  4. Klicken Sie auf Nutzerkonto hinzufügen.

    Auf der Seite Nutzerkonto zur Instanz instance_name hinzufügen können Sie auswählen, ob sich der Nutzer mit der integrierten Datenbankmethode (Nutzername und Passwort) oder als IAM-Nutzer authentifizieren soll.

  5. Wählen Sie Integrierte Authentifizierung (Standardeinstellung) aus und fügen Sie die folgenden Informationen hinzu:
    • Nutzername
    • Optional. Passwort Geben Sie ein starkes Passwort ein, das Sie sich gut merken können.
  6. Klicken Sie auf Hinzufügen.

Nutzer, die auf Instanzen mit der Authentifizierungsmethode von Cloud SQL erstellt werden, erhalten automatisch die Rolle cloudsqlsuperuser und haben die folgenden Berechtigungen: CREATEROLE, CREATEDB und LOGIN.

Wenn Sie die Attribute für diese Nutzer ändern müssen, verwenden Sie den Befehl ALTER ROLE im psql-Client. Nicht alle Attribute können mit ALTER ROLE geändert werden. Zu den Ausnahmen gehören die Attribute der Rollen NOSUPERUSER und NOREPLICATION.

gcloud

Verwenden Sie zum Erstellen eines Nutzers den Befehl gcloud sql users create.

Ersetzen Sie Folgendes:

  • USER_NAME: Der Nutzername.
  • INSTANCE_NAME: Name der Instanz
  • PASSWORD: Passwort für den Nutzer
gcloud sql users create USER_NAME \
--instance=INSTANCE_NAME \
--password=PASSWORD

Nutzer, die auf Instanzen mit der Authentifizierungsmethode von Cloud SQL erstellt werden, erhalten automatisch die Rolle cloudsqlsuperuser und haben die folgenden Berechtigungen: CREATEROLE, CREATEDB und LOGIN.

Wenn Sie die Attribute für diese Nutzer ändern müssen, verwenden Sie den Befehl ALTER ROLE im psql-Client. Nicht alle Attribute können mit ALTER ROLE geändert werden. Zu den Ausnahmen gehören die Attribute der Rollen NOSUPERUSER und NOREPLICATION.

Für Cloud SQL gelten die gleichen Längenbeschränkungen für Nutzernamen wie für lokales PostgreSQL.

Wenn Sie einen Nutzer erstellen, können Sie Parameter für die Passwortrichtlinie für Nutzer hinzufügen.

Terraform

Verwenden Sie zum Erstellen eines Nutzers eine Terraform-Ressource.

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
}

Ä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 Google Cloud-Standardprojekt 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

Verwenden Sie zum Erstellen eines Nutzers eine POST-Anfrage mit der Methode users:insert.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers
  • password: das Passwort für den Nutzer

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

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

Nutzer, die auf Instanzen mit der Authentifizierungsmethode von Cloud SQL erstellt werden, erhalten automatisch die Rolle cloudsqlsuperuser und haben die folgenden Berechtigungen: CREATEROLE, CREATEDB und LOGIN.

Wenn Sie die Attribute für diese Nutzer ändern müssen, verwenden Sie den Befehl ALTER ROLE im psql-Client. Nicht alle Attribute können mit ALTER ROLE geändert werden. Zu den Ausnahmen gehören die Attribute der Rollen NOSUPERUSER und NOREPLICATION.

Für Cloud SQL gelten die gleichen Längenbeschränkungen für Nutzernamen wie für lokales PostgreSQL.

Wenn Sie einen Nutzer erstellen, können Sie Parameter für die Passwortrichtlinie für Nutzer hinzufügen.

REST v1beta4

Verwenden Sie zum Erstellen eines Nutzers eine POST-Anfrage mit der Methode users:insert.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers
  • password: das Passwort für den Nutzer

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

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

Nutzer, die auf Instanzen mit der Authentifizierungsmethode von Cloud SQL erstellt werden, erhalten automatisch die Rolle cloudsqlsuperuser und haben die folgenden Berechtigungen: CREATEROLE, CREATEDB und LOGIN.

Wenn Sie die Attribute für diese Nutzer ändern müssen, verwenden Sie den Befehl ALTER ROLE im psql-Client. Nicht alle Attribute können mit ALTER ROLE geändert werden. Zu den Ausnahmen gehören die Attribute der Rollen NOSUPERUSER und NOREPLICATION.

Für Cloud SQL gelten die gleichen Längenbeschränkungen für Nutzernamen wie für lokales PostgreSQL.

Wenn Sie einen Nutzer erstellen, können Sie Parameter für die Passwortrichtlinie für Nutzer hinzufügen.

psql-Client

  1. Erstellen Sie den Nutzer über die psql-Eingabeaufforderung:
      CREATE USER USER_NAME
          WITH PASSWORD PASSWORD
          ATTRIBUTE1
          ATTRIBUTE2...;
      

    Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.

    Weitere Informationen über Rollenattribute finden Sie in der PostgreSQL-Dokumentation.

  2. Sie können überprüfen, ob der Nutzer erstellt wurde, indem Sie die Benutzertabelle anzeigen lassen:
      SELECT * FROM pg_roles;
      

Richtlinie für Nutzerpasswort festlegen

Passwortrichtlinien lassen sich mit dem integrierten Authentifizierungstyp verwenden.

gcloud

Zum Festlegen der Nutzerpasswortrichtlinie verwenden Sie den Befehl gcloud sql users set-password-policy.

Ersetzen Sie Folgendes:

  • USER_NAME: Der Nutzername.
  • INSTANCE_NAME: Name der Instanz
  • HOST: Der Hostname des Nutzers als spezifische IP-Adresse, Adressbereich oder beliebiger Host (%).
  • PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS: Optional: Die Anzahl, wie oft ein Nutzer das Passwort falsch eingeben kann, bevor das Konto gesperrt wird. Verwenden Sie --password-policy-enable-failed-attempts-check zum Aktivieren und --no-password-policy-enable-failed-attempts-check zum Deaktivieren der Prüfung.
  • PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION (optional): Gibt die Anzahl der Tage an, nach denen das Passwort abläuft und der Nutzer ein neues erstellen muss.
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

Verwenden Sie zum Entfernen einer Nutzerpasswortrichtlinie den Parameter --clear-password-policy.

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

Informationen über die Passwortrichtlinie für Nutzer finden Sie unter Nutzer auflisten.

REST Version 1

Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um eine Richtlinie für das Nutzerpasswort festzulegen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • INSTANCE_ID: die Instanz-ID
  • USER_ID: die ID des Nutzers
  • PASSWORD: das Passwort des Nutzers
  • FAILED_ATTEMPTS_CHECK: Setzen Sie diese Option auf true, um die Anzahl der fehlgeschlagenen Anmeldeversuche zu prüfen, nach denen das Konto gesperrt wird.
  • NUMBER_OF_ATTEMPTS: die Anzahl der fehlgeschlagenen Anmeldeversuche, nach denen das Konto gesperrt wird.
  • PASSWORD_EXPIRATION_DURATION: die Anzahl der Tage, nach denen das Passwort abläuft und der Nutzer ein neues erstellen muss.

HTTP-Methode und URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

JSON-Text anfordern:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
      }
    },
  }
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

Informationen über die Passwortrichtlinie für Nutzer finden Sie unter Nutzer auflisten.

REST v1beta4

Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um eine Richtlinie für das Nutzerpasswort festzulegen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • INSTANCE_ID: die Instanz-ID
  • USER_ID: die ID des Nutzers
  • PASSWORD: das Passwort des Nutzers
  • FAILED_ATTEMPTS_CHECK: Setzen Sie diese Option auf true, um die Anzahl der fehlgeschlagenen Anmeldeversuche zu prüfen, nach denen das Konto gesperrt wird.
  • NUMBER_OF_ATTEMPTS: die Anzahl der fehlgeschlagenen Anmeldeversuche, nach denen das Konto gesperrt wird.
  • PASSWORD_EXPIRATION_DURATION: die Anzahl der Tage, nach denen das Passwort abläuft und der Nutzer ein neues erstellen muss.

HTTP-Methode und URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

JSON-Text anfordern:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
      }
    },
  }
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

Informationen über die Passwortrichtlinie für Nutzer finden Sie unter Nutzer auflisten.

Nutzer auflisten

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 Seite Übersicht einer Instanz zu öffnen.
  3. Wählen Sie im SQL-Navigationsmenü die Option Nutzer aus.

gcloud

Verwenden Sie den Befehl gcloud sql users list, um die Nutzer für diese Instanz aufzulisten:

gcloud sql users list \
--instance=INSTANCE_NAME

Der Befehl gibt für jeden Nutzer Name, Host und die Authentifizierung-Type zurück.

Darüber hinaus werden für den integrierten Authentifizierungstyp die Einstellungen für die Passwortrichtlinie und der Status zurückgegeben. Beispiel:

    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 Version 1

Verwenden Sie zum Auflisten der für eine Instanz definierten Nutzer eine GET-Anfrage mit der Methode users:list.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID

HTTP-Methode und URL:

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

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

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

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

Wenn eine Passwortrichtlinie für Nutzer festgelegt wurde, enthält der Abschnitt items der Antwort einen passwordPolicy-Abschnitt. Das folgende Codebeispiel zeigt den Abschnitt passwordPolicy.

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

REST v1beta4

Verwenden Sie zum Auflisten der für eine Instanz definierten Nutzer eine GET-Anfrage mit der Methode users:list.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID

HTTP-Methode und URL:

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

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

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

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

Wenn eine Passwortrichtlinie für Nutzer festgelegt wurde, enthält der Abschnitt items der Antwort einen passwordPolicy-Abschnitt. Das folgende Codebeispiel zeigt den Abschnitt passwordPolicy.

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

psql-Client

Listen Sie die PostgreSQL-Nutzer über die psql-Eingabeaufforderung auf:

SELECT * FROM pg_roles;

Nutzerpasswort ändern

Nutzerpasswörter können auf eine der folgenden Arten geändert werden.

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 Seite Übersicht einer Instanz zu öffnen.
  3. Wählen Sie im SQL-Navigationsmenü die Option Nutzer aus.
  4. Klicken Sie für den zu aktualisierenden Nutzer auf das Dreipunkt-Menü Dreipunkt-Symbol.
  5. Wählen Sie Passwort ändern aus.
  6. Geben Sie ein neues Passwort ein.
  7. Klicken Sie auf OK.

gcloud

Verwenden Sie den Befehl gcloud sql users set-password, um ein Passwort zu ändern.

Ersetzen Sie Folgendes:

  • USER_NAME: Der Nutzername.
  • INSTANCE_NAME: Name der Instanz
gcloud sql users set-password USER_NAME \
--instance=INSTANCE_NAME \
--prompt-for-password

REST Version 1

Verwenden Sie zum Ändern eines Nutzerpassworts eine PUT-Anfrage mit der Methode users:update.

Mit der folgenden Anfrage wird das Passwort für das Nutzerkonto user_name aktualisiert.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers
  • password: das Passwort für den Nutzer

HTTP-Methode und URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

JSON-Text anfordern:

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

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "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

Verwenden Sie zum Ändern eines Nutzerpassworts eine PUT-Anfrage mit der Methode users:update.

Mit der folgenden Anfrage wird das Passwort für das Nutzerkonto user_name aktualisiert.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • user-id: die ID des Nutzers
  • password: das Passwort für den Nutzer

HTTP-Methode und URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

JSON-Text anfordern:

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

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

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

psql-Client

Führen Sie in der Eingabeaufforderung psql den Befehl ALTER USER aus.
  1. Entsperren Sie den Nutzer.
    ALTER USER USER_NAME WITH LOGIN;
    
  2. Ändern Sie das Passwort und geben Sie es ein, wenn Sie dazu aufgefordert werden.
    ALTER USER USER_NAME WITH PASSWORD PASSWORD;
    

Wenn ein Nutzer aufgrund der Einstellungen von Passwortrichtlinien ausgesperrt ist, ändern Sie das Passwort, um ihn zu entsperren. Achten Sie darauf, dass Passwörter wenn Sie geändert werden der Passwortrichtlinie entsprechen.

Richtlinie für Nutzerpasswort entfernen

Sie können eine Passwortrichtlinie von einem Nutzer entfernen, der über den integrierten Authentifizierungstyp verfügt.

gcloud

Verwenden Sie zum Entfernen der Passwortrichtlinie für Nutzer den Befehl gcloud sql users set-password-policy und den Parameter --clear-password-policy.

Ersetzen Sie Folgendes:

  • USER_NAME: der Nutzername.
  • INSTANCE_NAME ist der Name der Instanz.
  • HOST: der Hostname des Nutzers als bestimmte IP-Adresse, Adressbereich oder beliebiger Host (%).
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

REST Version 1

Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um eine Richtlinie für das Nutzerpasswort zu entfernen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • INSTANCE_ID: die Instanz-ID
  • USER_ID: die ID des Nutzers
  • PASSWORD: das Passwort des Nutzers

HTTP-Methode und URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

JSON-Text anfordern:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

REST v1beta4

Verwenden Sie eine PUT-Anfrage mit der Methode users:update, um eine Richtlinie für das Nutzerpasswort zu entfernen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • INSTANCE_ID: die Instanz-ID
  • USER_ID: die ID des Nutzers
  • PASSWORD: das Passwort des Nutzers

HTTP-Methode und URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

JSON-Text anfordern:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

Nutzer entfernen

Der Standardnutzer kann Nutzer entfernen.

Bevor Sie einen Nutzer entfernen, müssen Sie alle seine Objekte entfernen oder deren Inhaberschaft neu zuweisen. Alle Berechtigungen, die der Rolle für andere Objekte gewährt wurden, müssen aufgehoben werden.

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 Seite Übersicht einer Instanz zu öffnen.
  3. Wählen Sie im SQL-Navigationsmenü die Option Nutzer aus.
  4. Klicken Sie für den zu entfernenden Nutzer auf das Dreipunkt-Menü Dreipunkt-Symbol.
  5. Wählen Sie Entfernen und anschließend noch einmal Entfernen aus.

gcloud

Verwenden Sie den Befehl gcloud sql users delete, um einen Nutzer zu entfernen.

Ersetzen Sie Folgendes:

  • USER_NAME: Der Nutzername.
  • INSTANCE_NAME: Name der Instanz
gcloud sql users delete USER_NAME \
--instance=INSTANCE_NAME

REST Version 1

In der folgenden Anfrage wird mit der Methode users.delete das angegebene Nutzerkonto gelöscht.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID
  • INSTANCE_ID: die gewünschte Instanz-ID
  • USERNAME: die E-Mail-Adresse des Nutzers oder Dienstkontos

HTTP-Methode und URL:

DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "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

In der folgenden Anfrage wird mit der Methode users.delete das angegebene Nutzerkonto gelöscht.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID
  • INSTANCE_ID: die gewünschte Instanz-ID
  • USERNAME: die E-Mail-Adresse des Nutzers oder Dienstkontos

HTTP-Methode und URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

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

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

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

psql-Client

  1. Löschen Sie den Nutzer über die psql-Eingabeaufforderung:
    DROP ROLE USER_NAME;
    

    Weitere Informationen zur DROP ROLE-Anweisung finden Sie in der PostgreSQL-Dokumentation.

Nutzerattribute aktualisieren

Verwenden Sie den psql-Client, um Nutzereigenschaften wie Attribute zu aktualisieren. Weitere Informationen finden Sie unter Datenbankrollen in der PostgreSQL-Dokumentation.

Nächste Schritte