Wenn Sie den Zugriff auf Ihre AlloyDB for PostgreSQL-Datenbanken steuern möchten, können Sie Datenbanknutzer, ‑rollen und ‑gruppen mit der integrierten PostgreSQL-Authentifizierung oder der Identity and Access Management-Authentifizierung (IAM) erstellen und verwalten.
Funktionsweise der Datenbanknutzerverwaltung
AlloyDB verwendet dieselben Konzepte für Rollen, Nutzer und Gruppen wie PostgreSQL. Eine kurze Erläuterung finden Sie in den folgenden Beschreibungen:
Rolle: Die übergeordnete Bezeichnung, die sowohl Datenbanknutzer als auch Gruppen von Datenbanknutzern in einem Cluster beschreibt. Rollen gewähren und beschränken den Zugriff auf Datenbankobjekte wie Tabellen und Funktionen.
Nutzer: Die Rolle, der das Attribut
LOGINzugewiesen ist. Nutzer können sich bei AlloyDB-Datenbankclustern authentifizieren und anmelden.Gruppe: Die Rolle, die einem oder mehreren Nutzern zugewiesen wird. Der Zweck von Gruppen besteht darin, die Berechtigungen zu steuern, die viele Nutzer insgesamt haben.
So funktioniert die Datenbankauthentifizierung
Sie haben zwei Möglichkeiten, sich bei Ihren AlloyDB-Datenbankclustern zu authentifizieren und anzumelden:
- Integrierte passwortbasierte PostgreSQL-Authentifizierung: Zur Überprüfung der Nutzeridentität vergleicht AlloyDB die angegebenen Anmeldedaten mit gespeicherten, gehashten Passwörtern. Zu den unterstützten Methoden gehören
md5,scram-sha-256undpassword. - IAM-Authentifizierung: Ermöglicht Datenbanknutzern die Authentifizierung mit IAM. Dies bietet erhöhte Sicherheit und zentralisiert die Zugriffssteuerung für andereGoogle Cloud -Dienste.
Vordefinierte Rollen
PostgreSQL bietet vordefinierte Rollen mit verschiedenen Berechtigungen. Zusätzlich zu diesen vordefinierten Rollen bietet AlloyDB mehrere weitere vordefinierte Nutzer- und Gruppenrollen.
In der folgenden Tabelle sind die Rollen und Rollenberechtigungen aufgeführt, die AlloyDB bietet:
| Rollenname | Berechtigungen |
|---|---|
alloydbsuperuser |
CREATEROLE, CREATEDB und LOGIN. |
postgres |
CREATEROLE, CREATEDB und LOGIN. |
alloydbadmin |
SUPERUSER (einschließlich CREATEROLE, CREATEDB und LOGIN). |
alloydbimportexport |
CREATEROLE und CREATEDB. |
alloydbexport |
LOGIN und Mitglied von pg_read_all_data. |
alloydbagent |
CREATEROLE und CREATEDB. |
alloydbmetadata |
LOGIN. Standardmäßig hat diese Rolle keine zusätzlichen Berechtigungen. |
alloydbobservability |
LOGIN und Mitglied von pg_monitor. |
alloydbreplica |
REPLICATION. |
alloydbiamuser |
Standardmäßig hat diese Rolle keine Berechtigungen. |
alloydbiamgroupuser |
Standardmäßig hat diese Rolle keine Berechtigungen. |
In den folgenden Abschnitten wird die Verwendung dieser Rollen erläutert.
Rolle in der Gruppe „alloydbsuperuser“
Mit der Rolle alloydbsuperuser können Sie Ihr Datenbanksystem einrichten und andere Superuser-Aufgaben ausführen. Diese Rolle hat die folgenden Berechtigungen:
- Erweiterungen erstellen, die Superuser-Berechtigungen erfordern
- Ereignistrigger erstellen
- Replikationsnutzer erstellen
- Replikationspublikationen und -abos erstellen
Als verwalteter Dienst können Sie Nutzern in AlloyDB nicht die PostgreSQL-Rolle superuser zuweisen. Stattdessen können Sie jedem Datenbanknutzer AlloyDB-Superuser-Berechtigungen gewähren, wenn Sie ihm die Rolle alloydbsuperuser zuweisen.
Nutzerrolle „postgres“
Die Nutzerrolle postgres ist Teil der Rolle alloydbsuperuser. Wenn Sie einen AlloyDB-Cluster erstellen, können Sie dem Nutzer postgres ein Passwort zuweisen, damit Sie sich mit dem Nutzer postgres in Ihrem System anmelden können, um Aufgaben wie das Erstellen von Datenbanken oder zusätzlichen Rollen auszuführen.
Nutzerrolle „alloydbadmin“
Die Rolle alloydbadmin ist eine vordefinierte interne Systemrolle, die das Datenbanksystem einrichtet, Erweiterungen installiert und aktualisiert und andere interne Superuser-Aufgaben ausführt. Diese Rolle wird vom AlloyDB-Dienst verwaltet. Sie können sie nicht zum Anmelden verwenden oder Datenbankkonten manuell zuweisen.
Nutzerrolle „alloydbimportexport“
Wenn Sie einen AlloyDB-Cluster erstellen, erstellt AlloyDB den Nutzer alloydbimportexport mit den minimalen Berechtigungen, 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 Standard-alloydbimportexport-Nutzer für Import- und Exportvorgänge.
Der Nutzer alloydbimportexport ist ein Systemnutzer. Das bedeutet, dass Sie den Nutzer alloydbimportexport nicht direkt verwenden können, um sich anzumelden oder andere Vorgänge in Ihren PostgreSQL-Datenbanken auszuführen.
Nutzerrolle „alloydbexport“
Die Rolle alloydbexport ist eine interne AlloyDB-Systemrolle mit pg_read_all_data-Berechtigungen, die von internen Exportvorgängen verwendet wird. Der AlloyDB-Dienst verwaltet diese Rolle. Sie können sie Datenbankkonten nicht manuell zuweisen.
Nutzerrolle „alloydbagent“
Die Rolle alloydbagent ist eine interne AlloyDB-Systemrolle. Der AlloyDB-Dienst verwaltet die Rolle und Sie können sie Datenbankkonten nicht manuell zuweisen. Diese Verwaltung trägt dazu bei, dass die Datenbank und ihre Funktionen ordnungsgemäß funktionieren.
Nutzerrolle „alloydbmetadata“
Die Rolle alloydbmetadata ist eine interne AlloyDB-Systemrolle mit minimalen Berechtigungen, die zum Verwalten interner Metadatentabellen verwendet wird. Der AlloyDB-Dienst verwaltet diese Rolle. Sie können sie Datenbankkonten nicht manuell zuweisen.
Nutzerrolle „alloydbobservability“
Die Rolle alloydbobservability ist eine interne AlloyDB-Systemrolle mit pg_monitor-Berechtigungen, die zum Erfassen von Datenbanktelemetrie, Query Insights und Beobachtbarkeitsmesswerten verwendet wird. Der AlloyDB-Dienst verwaltet diese Rolle. Sie können sie Datenbankkonten nicht manuell zuweisen.
Nutzerrolle „alloydbreplica“
Die Rolle alloydbreplica ist eine interne AlloyDB-Systemrolle. Der AlloyDB-Dienst verwaltet die Rolle und Sie können sie Datenbankkonten nicht manuell zuweisen. Diese Verwaltung trägt dazu bei, dass die Datenbank und ihre Funktionen ordnungsgemäß funktionieren.
Rolle in der Gruppe „alloydbiamuser“
Datenbanknutzer in der Gruppe alloydbiamuser authentifizieren sich bei einer AlloyDB-Instanz mithilfe von IAM, anstatt die integrierte passwortbasierte Authentifizierung von PostgreSQL zu verwenden.
In AlloyDB können Sie Nutzern die Rolle alloydbiamuser nicht mit dem PostgreSQL-Befehl GRANT oder ähnlichen Methoden zuweisen. Stattdessen können Sie AlloyDB-Verwaltungstools verwenden, um IAM-basierte Datenbanknutzer zu erstellen und zu verwalten. Weitere Informationen finden Sie unter IAM-Authentifizierung verwalten.
Rolle in der Gruppe „alloydbiamgroupuser“
Datenbankgruppen und ihre Mitgliedskonten, die die IAM-Gruppenauthentifizierung verwenden, gehören zur Gruppenrolle alloydbiamgroupuser. Der AlloyDB-Dienst verwaltet diese Rolle automatisch, wenn Sie einem Cluster eine IAM-Gruppe hinzufügen. Sie können sie nicht manuell mit dem PostgreSQL-Befehl GRANT zuweisen. Weitere Informationen zum Gewähren von Datenbankberechtigungen für IAM-Nutzer finden Sie unter IAM-Authentifizierung verwalten.