AlloyDB-Nutzerrollen verwalten

Auf dieser Seite wird beschrieben, wie AlloyDB for PostgreSQL mit PostgreSQL-Nutzerrollen funktioniert.

Nutzerrollen in AlloyDB

In einer AlloyDB-Datenbank wird das standardmäßige PostgreSQL-Konzept von Rollen verwendet. Eine Rolle kann als Datenbanknutzer, als Gruppe von Nutzern oder als beides fungieren.

Eine Nutzerrolle hat das LOGIN-Berechtigungsrecht, mit dem sich Nutzer im System anmelden können. Eine Gruppenrolle hat Mitgliedsrollen mit verschiedenen Berechtigungen, die Sie allen Mitgliedern gleichzeitig gewähren oder entziehen können.

Vordefinierte PostgreSQL-Rollen von AlloyDB

PostgreSQL bietet eine Reihe von vordefinierten Rollen mit verschiedenen Berechtigungen. AlloyDB fügt diesen vordefinierten Rollen von PostgreSQL mehrere Nutzer- und Gruppenrollen hinzu.

In der folgenden Tabelle sind die PostgreSQL-Rollen aufgeführt, die in AlloyDB vordefiniert sind:

Rollenname Berechtigungen
alloydbsuperuser CREATEROLE, CREATEDB und LOGIN.
postgres CREATEROLE, CREATEDB und LOGIN.
alloydbimportexport CREATEROLE und CREATEDB.
alloydbagent CREATEROLE und CREATEDB.
alloydbreplica REPLICATION
alloydbiamuser Diese Rolle hat standardmäßig keine Berechtigungen.

In den folgenden Abschnitten finden Sie Informationen zu einigen der am häufigsten verwendeten AlloyDB-spezifischen Rollen.

Die Gruppenrolle alloydbsuperuser

Die Rolle alloydbsuperuser ist eine vordefinierte Rolle, mit der das Datenbanksystem anfangs eingerichtet und andere Superuser-Aufgaben ausgeführt werden können. Diese Rolle hat die folgenden Berechtigungen:

  • Erweiterungen erstellen, die Superuser-Berechtigungen erfordern
  • Ereignistrigger erstellen
  • Replikationsnutzer erstellen
  • Replikationspublikationen und -abos erstellen

Da AlloyDB ein verwalteter Dienst ist, können Sie Nutzern nicht die PostgreSQL-Rolle superuser gewähren. Stattdessen können Sie jeder Datenbanknutzerrolle AlloyDB-Superuser-Berechtigungen erteilen, indem Sie ihr die Rolle alloydbsuperuser zuweisen.

Die Nutzerrolle postgres

Der postgres-Nutzer ist Teil der Rolle alloydbsuperuser. Wenn Sie einen AlloyDB-Cluster erstellen, weisen Sie der Nutzerrolle postgres ein Passwort zu. Sie melden sich dann mit der Rolle postgres an Ihrem System an, um Datenbanken, zusätzliche Rollen usw. zu erstellen.

Die Nutzerrolle alloydbimportexport

Wenn Sie einen AlloyDB-Cluster erstellen, wird der Standardnutzer alloydbimportexport mit den minimalen Berechtigungen erstellt, die für Import- und Exportvorgänge erforderlich sind.

Sie können Ihre eigenen Nutzer erstellen, um diese Vorgänge auszuführen. Wenn Sie keinen benutzerdefinierten alloydbimportexport-Nutzer erstellen, verwendet das System den Standardnutzer alloydbimportexport für Import- und Exportvorgänge.

Der Nutzer alloydbimportexport ist ein Systemnutzer. Sie können sich nicht direkt mit dem Nutzer alloydbimportexport anmelden oder andere Vorgänge in der PostgreSQL-Datenbank ausführen.

Die Gruppenrolle alloydbiamuser

Datenbanknutzer mit der Gruppenrolle alloydbiamuser authentifizieren sich bei einer AlloyDB-Instanz mithilfe der Identitäts- und Zugriffsverwaltung, anstatt die standardmäßige passwortbasierte PostgreSQL-Authentifizierung zu verwenden.

In AlloyDB können Sie Nutzern diese Rolle nicht mit dem PostgreSQL-Befehl GRANT oder ähnlichen Methoden gewähren. Stattdessen können Sie die Verwaltungstools von AlloyDB verwenden, um Datenbanknutzer auf Basis von Identity and Access Management (IAM) zu erstellen und zu verwalten. Weitere Informationen finden Sie unter IAM-Authentifizierung verwalten.

Weitere PostgreSQL-Nutzer in AlloyDB erstellen

Sie können weitere PostgreSQL-Nutzer oder ‑Rollen erstellen. Diese Nutzer haben dieselben Berechtigungen wie der postgres-Nutzer: CREATE ROLE, CREATEDB und LOGIN. Weitere Informationen zu diesen Berechtigungen finden Sie unter CREATE ROLE.

Mit dem Befehl ALTER ROLE können Sie die Berechtigungen eines Nutzers ändern. Wenn Sie einen neuen Nutzer mit dem psql-Client erstellen, können Sie ihn mit einer anderen Rolle verknüpfen oder ihm andere Berechtigungen zuweisen.

Nutzer verwalten

Sie können AlloyDB-Nutzerrollen mit der Google Cloud CLI oder mit PostgreSQL-Befehlen erstellen und verwalten. In den folgenden Abschnitten werden gängige Aufgaben zur Nutzerverwaltung mit beiden Methoden veranschaulicht.

Hinweise

Wenn Sie Nutzer in einem Cluster mit PostgreSQL-Befehlen verwalten möchten, benötigen Sie Folgendes:

  • Zugriff auf den psql-Client
  • Zugriff auf den postgres-Datenbanknutzer oder eine andere Nutzerrolle mit den entsprechenden Administratorberechtigungen

Wenn Sie Nutzer in einem Cluster über die Google Cloud Console oder die Google Cloud CLI verwalten möchten, muss dieser Cluster eine primäre Instanz haben. Wenn Ihr Cluster keine primäre Instanz hat, müssen Sie eine erstellen, bevor Sie Nutzer verwalten können.

Datenbanknutzer erstellen

Wenn Sie einen Datenbanknutzer erstellen möchten, der sich direkt über einen Nutzernamen und ein Passwort bei der Datenbank authentifiziert (auch als integrierte Authentifizierung bezeichnet), folgen Sie der Anleitung in diesem Abschnitt.

Wenn Sie stattdessen einen Datenbanknutzer erstellen möchten, der sich mit Identity and Access Management authentifiziert, lesen Sie den Hilfeartikel IAM-Authentifizierung verwalten.

Console

  1. Rufen Sie die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf den Namen des Clusters, dem Sie einen Nutzer hinzufügen möchten.

  3. Klicken Sie auf Nutzer.

  4. Klicken Sie auf Nutzerkonto hinzufügen.

  5. Lassen Sie Integrierte Authentifizierung ausgewählt.

Sie können stattdessen Cloud IAM auswählen, um einen Datenbanknutzer zu erstellen, der sich mit IAM authentifiziert. Bei dieser Auswahl sind zusätzliche Schritte erforderlich, um Ihr Projekt vorzubereiten und dem neuen Datenbanknutzer die entsprechenden Berechtigungen zu gewähren. Weitere Informationen finden Sie unter IAM-Authentifizierung verwalten.

  1. Geben Sie einen Nutzernamen und ein Passwort für den neuen Nutzer ein.

  2. Klicken Sie auf Hinzufügen.

psql

CREATE USER USERNAME WITH PASSWORD 'PASSWORD';

Weitere Informationen zum Erstellen und Definieren von Datenbanknutzern finden Sie unter CREATE USER.

Nachdem Sie eine Nutzerrolle erstellt haben, können Sie die Berechtigungen mit dem Befehl ALTER ROLE im psql-Client ändern.

gcloud

Führen Sie den Befehl gcloud alloydb users create aus:

gcloud alloydb users create USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID

Ersetzen Sie Folgendes:

  • USERNAME: Der Nutzername der neuen Rolle.

  • PASSWORD: Das Passwort der neuen Nutzerrolle. Wenn Sie den Nutzer ohne Passwort erstellen möchten, lassen Sie dieses Argument weg.

  • CLUSTER_ID: Die ID des Clusters, dem die neue Nutzerrolle hinzugefügt werden soll.

  • REGION_ID: Die ID der Region, in der sich der Cluster befindet, z. B. us-central1.

Nachdem Sie eine Nutzerrolle erstellt haben, können Sie die Berechtigungen mit dem Befehl gcloud alloydb users set-roles ändern.

Sie können einem Nutzer auch beim Erstellen Rollen oder Superuser-Berechtigungen gewähren. Verwenden Sie dazu die Argumente --db-roles oder --superuser, wie im folgenden Abschnitt beschrieben.

Datenbanknutzern Rollen zuweisen

Console

Wenn Sie einem Datenbanknutzer Rollen zuweisen möchten, verwenden Sie psql oder die gcloud CLI anstelle der Google Cloud Console.

psql

GRANT ROLE to USERNAME;

Wenn Sie einem Nutzer Superuser-Berechtigungen zuweisen möchten, weisen Sie ihm die Rolle alloydbsuperuser zu.

gcloud

Verwenden Sie den Befehl gcloud alloydb users set-roles, um alle Rollen anzugeben, die der Nutzer haben soll:

gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID

Ersetzen Sie Folgendes:

  • USERNAME: Die Nutzerrolle, der Rollen zugewiesen werden sollen.

  • ROLES: Eine durch Kommas getrennte Liste aller Rollen, die der angegebene Nutzer haben soll. Achten Sie darauf, dass Sie alle Rollen auflisten, einschließlich vorhandener und neuer Rollen, die Sie dem Nutzer zuweisen möchten.

    Führen Sie den folgenden Befehl aus, um eine Liste der vorhandenen Rollen aufzurufen, die dem Nutzer zugewiesen sind:

    gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
  • CLUSTER_ID: Die ID des Clusters, der den Nutzer enthält.

  • REGION_ID: Die ID der Region, in der sich der Cluster befindet, z. B. us-central1.

Wenn Sie einem Nutzer Superuser-Berechtigungen erteilen möchten, können Sie ihm entweder manuell die Rolle alloydbsuperuser mit dem oben beschriebenen Befehl zuweisen oder den Befehl gcloud alloydb users set-superuser mit dem Argument --superuser=true ausführen:

gcloud alloydb users set-superuser USERNAME \
--superuser=true \
--cluster=CLUSTER_ID \
--region=REGION_ID

Passwort eines Datenbanknutzers ändern

Wenn Sie ein neues Passwort für einen Standardnutzer der PostgreSQL-Datenbank festlegen möchten, folgen Sie der Anleitung in diesem Abschnitt.

Sie können das Passwort eines IAM-basierten Nutzers nicht ändern oder festlegen, da IAM-basierte Nutzer sich nicht mit Passwörtern authentifizieren. Weitere Informationen finden Sie unter Über ein IAM-Konto eine Verbindung herstellen.

Console

  1. Rufen Sie die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf den Namen des Clusters, der den Datenbanknutzer enthält, dessen Passwort Sie ändern möchten.

  3. Klicken Sie auf Nutzer.

  4. Klicken Sie in der Zeile des Nutzers, dessen Passwort Sie ändern möchten, auf  Aktionen für diesen Nutzer öffnen.

  5. Wählen Sie Passwort ändern aus.

  6. Geben Sie ein Passwort an:

    • Wenn Sie ein neues Passwort für diesen Nutzer festlegen möchten, geben Sie es in das Feld Passwort ein.

    • Wenn Sie für diesen Nutzer kein Passwort festlegen möchten, klicken Sie das Kästchen Kein Passwort an.

  7. Klicken Sie auf OK.

psql

ALTER USER USERNAME WITH PASSWORD 'PASSWORD';

Weitere Informationen zum Ändern des Passworts eines Nutzers finden Sie unter ALTER ROLE.

gcloud

Führen Sie den Befehl gcloud alloydb users set-password aus:

gcloud alloydb users set-password USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID

Ersetzen Sie Folgendes:

  • USERNAME: Der Nutzername der Nutzerrolle.

  • PASSWORD: Das neue Passwort, das der Nutzerrolle zugewiesen werden soll.

  • CLUSTER_ID: Die ID des Clusters, zu dem die Nutzerrolle gehört.

  • REGION_ID: Die ID der Region, in der sich der Cluster befindet, z. B. us-central1.

Rolle für einen Datenbanknutzer widerrufen

Console

Wenn Sie einem Datenbanknutzer Rollen entziehen möchten, verwenden Sie psql oder die gcloud CLI anstelle der Google Cloud Console.

psql

Sie können zuvor gewährte Berechtigungen für eine oder mehrere Rollen widerrufen oder die Mitgliedschaft eines Nutzers in einer Rolle widerrufen.

REVOKE ROLE FROM USERNAME;

Wenn Sie die Superuser-Berechtigungen eines Nutzers entfernen möchten, widerrufen Sie die Rolle alloydbsuperuser für diesen Nutzer.

gcloud

Wenn Sie eine Rolle mit der Google Cloud CLI widerrufen möchten, verwenden Sie den Befehl gcloud alloydb users set-roles, um alle Rollen anzugeben, die der Nutzer haben soll. Rollen, die widerrufen werden sollen, müssen Sie weglassen.

gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID

Ersetzen Sie Folgendes:

  • USERNAME: Die Nutzerrolle, von der Rollen widerrufen werden sollen.

  • ROLES: Eine durch Kommas getrennte Liste aller Rollen, die der angegebene Nutzer haben soll. Die Rollen, die widerrufen werden sollen, werden dabei nicht aufgeführt.

    Führen Sie den folgenden Befehl aus, um eine Liste aller Rollen aufzurufen, die dem Nutzer zugewiesen sind:

    gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
  • CLUSTER_ID: Die ID des Clusters, der den Nutzer enthält.

  • REGION_ID: Die ID der Region, in der sich der Cluster befindet, z. B. us-central1.

Wenn Sie Superuser-Berechtigungen widerrufen möchten, können Sie die alloydbsuperuser-Rolle eines Nutzers entweder manuell mit dem oben beschriebenen Befehl entfernen oder den Befehl gcloud alloydb users set-superuser mit dem Argument --superuser=false ausführen.

Liste der Datenbanknutzer aufrufen

Console

  1. Rufen Sie die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf den Namen des Clusters, dessen Nutzer Sie aufrufen möchten.

  3. Klicken Sie auf Nutzer.

psql

Der Befehl \du gibt eine Tabelle mit allen Datenbanknutzern aus, einschließlich ihrer Gruppenmitgliedschaften.

\du

gcloud

Führen Sie den Befehl gcloud alloydb users list aus:

gcloud alloydb users list \
--cluster=CLUSTER_ID \
--region=REGION_ID

Ersetzen Sie Folgendes:

  • CLUSTER_ID: Die ID des Clusters, dessen Nutzer aufgelistet werden sollen.

  • REGION_ID: Die ID der Region, in der sich der Cluster befindet, z. B. us-central1.

Datenbanknutzer löschen

Console

  1. Rufen Sie die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf den Namen des Clusters, aus dem Sie den Nutzer entfernen möchten.

  3. Klicken Sie auf Nutzer.

  4. Klicken Sie in der Zeile für den Nutzer, den Sie entfernen möchten, auf  Aktionen für diesen Nutzer öffnen.

  5. Klicken Sie auf Entfernen.

  6. Klicken Sie im Dialogfeld Nutzerkonto entfernen? auf Entfernen.

psql

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.

DROP ROLE USERNAME;

gcloud

Führen Sie den Befehl gcloud alloydb users delete aus:

gcloud alloydb users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION_ID

Ersetzen Sie Folgendes:

  • USERNAME: Die zu löschende Nutzerrolle.

  • CLUSTER_ID: Die ID des Clusters, aus dem die Nutzerrolle entfernt werden soll.

  • REGION_ID: Die ID der Region, in der sich der Cluster befindet, z. B. us-central1.

Nächste Schritte