PostgreSQL-Nutzer erstellen und verwalten

Auf dieser Seite wird beschrieben, wie Sie diese Aufgaben für Cloud SQL-Instanzen durchführen:

  • Standardnutzerkonto konfigurieren
  • Andere Nutzerkonten erstellen, löschen und aktualisieren

Weitere Informationen zu Nutzern in Cloud SQL finden Sie unter PostgreSQL-Nutzer.

Hinweis

Bevor Sie diese Aufgaben ausführen, erstellen Sie zuerst eine Cloud SQL-Instanz. Weitere Informationen finden Sie unter Instanzen erstellen.

Wenn Sie den administrativen Client Ihrer Datenbank für die Nutzerverwaltung verwenden möchten, muss der Standardnutzer für die Instanz konfiguriert sein. Weitere Informationen finden Sie unter Standardkonto konfigurieren.

Darüber hinaus muss ein mit Ihrer Instanz verbundener administrativer Client konfiguriert sein. Weitere Informationen finden Sie unter Verbindungsoptionen für externe Anwendungen.

Standardnutzerkonto konfigurieren

Wenn Sie eine neue Cloud SQL-Instanz erstellen, müssen Sie das Standardnutzerkonto konfigurieren, bevor Sie eine Verbindung zur Instanz herstellen können.

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

So konfigurieren Sie den Standardnutzer:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Klicken Sie auf die Instanz, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im 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

Legen Sie das Passwort für den Standardnutzer fest:

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

REST API v1beta4

In der folgenden Anfrage wird mit der Methode users.update das Root-Nutzerkonto aktualisiert.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

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

Nutzer erstellen

So erstellen Sie einen Nutzer:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im Navigationsmenü die Option Nutzer aus.
  4. Klicken Sie auf NUTZER HINZUFÜGEN.
  5. Klicken Sie auf der Seite Nutzerkonto zur Instanz instance_name hinzufügen auf das Optionsfeld PostgreSQL.
  6. Geben Sie die folgenden Informationen ein:
    • Nutzername
    • Passwort
  7. Klicken Sie auf Erstellen.

Nutzer, die mit Cloud SQL erstellt wurden, haben die Berechtigungen, die der Rolle cloudsqlsuperuser zugeordnet sind: CREATEROLE, CREATEDB und LOGIN. Ein Nutzer, der von diesen Nutzern erstellt wird, kann Datenbankverbindungsberechtigungen haben, die verhindern, dass der Nutzer gelöscht wird. Wenn Sie die Attribute für einen 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

Erstellen Sie den Nutzer:

gcloud sql users create [USER_NAME] \
   --instance=[INSTANCE_NAME] --password=[PASSWORD]

Nutzer, die mit Cloud SQL erstellt wurden, haben die Berechtigungen, die der Rolle cloudsqlsuperuser zugeordnet sind: CREATEROLE, CREATEDB und LOGIN. Ein Nutzer, der von diesen Nutzern erstellt wird, kann Datenbankverbindungsberechtigungen haben, die verhindern, dass der Nutzer gelöscht wird. Wenn Sie die Attribute für einen 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.

REST API v1beta4

In der folgenden Anfrage wird mit der Methode users.insert das Nutzerkonto „user_name“ erstellt.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • 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 müssten 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 mit Cloud SQL erstellt wurden, haben die Berechtigungen, die der Rolle cloudsqlsuperuser zugeordnet sind: CREATEROLE, CREATEDB und LOGIN. Ein Nutzer, der von diesen Nutzern erstellt wird, kann Datenbankverbindungsberechtigungen haben, die verhindern, dass der Nutzer gelöscht wird. Wenn Sie die Attribute für einen 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.

psql-Client

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

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

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

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

Nutzerpasswort ändern

So ändern Sie ein Nutzerpasswort:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im Navigationsmenü die Option Nutzer aus.
  4. Klicken Sie für den zu aktualisierenden Nutzer auf das Dreipunkt-Menü Dreipunkt-Menü.
  5. Wählen Sie Passwort ändern aus, geben Sie ein neues Passwort ein und klicken Sie auf OK.

gcloud

Aktualisieren Sie das Passwort:

gcloud sql users set-password [USER_NAME] \
   --instance=[INSTANCE_NAME] --prompt-for-password

REST API v1beta4

In der folgenden Anfrage wird die Methode users:update verwendet, um das Passwort für das Nutzerkonto „user_name“ zu aktualisieren.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • 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 müssten 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

  1. Ändern Sie das Passwort über die psql-Eingabeaufforderung:
    \password [USER];
    

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

Nutzer aktualisieren

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

Nutzer auflisten

So listen Sie Nutzer auf:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im Navigationsmenü die Option Nutzer aus.

gcloud

Listen Sie die Nutzer für diese Instanz auf:

gcloud sql users list --instance=[INSTANCE_NAME]

Eine vollständige Liste der Parameter für diesen Befehl finden Sie auf der Referenzseite für gcloud sql users list.

REST API v1beta4

In der folgenden Anfrage werden mit der Methode users.list die für eine Instanz definierten Nutzer aufgelistet.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • 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 müssten in etwa folgende JSON-Antwort 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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

psql-Client

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

SELECT * FROM pg_roles;

Nutzer löschen

So löschen Sie einen Nutzer:

Bevor Sie einen Nutzer löschen, 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. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Wählen Sie im Navigationsmenü die Option Nutzer aus.
  4. Klicken Sie für den zu löschenden Nutzer auf das Dreipunkt-Menü Dreipunkt-Menü.
  5. Wählen Sie Löschen aus und klicken Sie auf OK.

gcloud

Löschen Sie den Nutzer:

gcloud sql users delete [USER_NAME] --instance=[INSTANCE_NAME]

REST API v1beta4

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

Ersetzen Sie diese Werte in den folgenden Anweisungen:

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

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

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

Sie müssten 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": "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.

Nächste Schritte