Die Rolle „rds_superuser“ verstehen - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die Rolle „rds_superuser“ verstehen

In PostgreSQL kann eine Rolle einen Benutzer, eine Gruppe oder einen Satz bestimmter Berechtigungen definieren, die einer Gruppe oder einem Benutzer für verschiedene Objekte in der Datenbank gewährt werden. PostgreSQL-Befehle für CREATE USER und CREATE GROUP wurden durch den allgemeineren Befehl CREATE ROLE mit bestimmten Eigenschaften zur Unterscheidung von Datenbankbenutzern ersetzt. Einen Datenbankbenutzer kann man sich als Rolle mit der LOGIN-Berechtigung vorstellen.

Anmerkung

Die Befehle CREATE USER und CREATE GROUP können weiterhin verwendet werden. Weitere Informationen dazu finden Sie im Abschnitt Datenbankrollen der PostgreSQL-Dokumentation.

Der postgres-Benutzer ist der Datenbankbenutzer mit den meisten Berechtigungen auf Ihrem Aurora-PostgreSQL-DB-Cluster. Er verfügt über die Eigenschaften, die durch die folgende CREATE ROLE-Anweisung definiert sind.

CREATE ROLE postgres WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION VALID UNTIL 'infinity'

Die Eigenschaften NOSUPERUSER, NOREPLICATION, INHERIT und VALID UNTIL 'infinity' sind die Standardoptionen für CREATE ROLE, sofern nicht anders angegeben.

Standardmäßig verfügt postgres über Berechtigungen, die der rds_superuser-Rolle gewährt wurden, und über Berechtigungen zum Erstellen von Rollen und Datenbanken. Die rds_superuser-Rolle erlaubt dem postgres-Benutzer, folgende Aktionen auszuführen:

  • Erweiterungen für die Verwendung mit Aurora PostgreSQL. Weitere Informationen finden Sie unter Arbeiten mit Erweiterungen und Fremddaten-Wrappern.

  • Rollen für Benutzer erstellen und Benutzern Berechtigungen gewähren. Weitere Informationen dazu finden Sie im Abschnitt CREATE ROLE und GRANT der PostgreSQL-Dokumentation.

  • Datenbanken erstellen. Weitere Informationen finden Sie im Abschnitt CREATE DATABASE der PostgreSQL-Dokumentation.

  • Gewähren Sie rds_superuser-Berechtigungen anderen Benutzerrollen, die nicht über diese Berechtigungen verfügen, und widerrufen Sie diese Berechtigungen bei Bedarf. Es wird empfohlen, diese Rolle nur denjenigen Benutzern zu gewähren, die Superuser-Aufgaben ausführen. Mit anderen Worten, Sie können diese Rolle Datenbankadministratoren (DBAs) oder Systemadministratoren zuweisen.

  • Die rds_replication-Rolle Datenbankbenutzern gewähren (oder entziehen), die nicht über die rds_superuser-Rolle verfügen.

  • Die rds_password-Rolle Datenbankbenutzern gewähren (oder entziehen), die nicht über die rds_superuser-Rolle verfügen.

  • Statusinformationen über alle Datenbankverbindungen über die Ansicht pg_stat_activity abrufen. Bei Bedarf kann rds_superuser alle Verbindungen mit pg_terminate_backend oder pg_cancel_backend stoppen.

In der CREATE ROLE postgres...-Anweisung können Sie sehen, dass die postgres-Benutzerrolle PostgreSQL ausdrücklich superuser-Berechtigungen verweigert. Aurora PostgreSQL ist ein verwalteter Service, sodass Sie nicht auf das Host-Betriebssystem zugreifen können und keine Verbindung mit dem superuser-PostgreSQL-Konto herstellen können. Viele der Aufgaben, die superuser-Zugriff auf einem eigenständigem PostgreSQL erfordern, werden von Aurora automatisch verwaltet.

Weitere Informationen zum Gewähren von Berechtigungen finden Sie unter GRANT in der PostgreSQL-Dokumentation.

Die rds_superuser-Rolle ist eine von mehreren vordefinierten Rollen in einem Aurora-PostgreSQL-DB-Cluster.

Anmerkung

In PostgreSQL 13 und früheren Versionen werden vordefinierte Rollen als Standardrollen bezeichnet.

In der folgenden Liste finden Sie einige der anderen vordefinierten Rollen, die automatisch für einen neuen Aurora-PostgreSQL-DB-Cluster erstellt werden. Vordefinierte Rollen und ihre Berechtigungen können nicht geändert werden. Sie können Berechtigungen für diese vordefinierten Rollen nicht löschen, umbenennen oder ändern. Jeder entsprechende Versuch führt zu einem Fehler.

  • rds_passwort – Eine Rolle, die Passwörter ändern und Passwortbeschränkungen für Datenbankbenutzer einrichten kann. Die rds_superuser Rolle wird standardmäßig zusammen mit dieser Rolle zugewiesen und kann Datenbankbenutzern zugewiesen werden. Weitere Informationen finden Sie unter Steuern des Benutzerzugriffs auf die PostgreSQL−Datenbank.

    • Für RDS for PostgreSQL-Versionen, die älter als 14 sind, kann die rds_password Rolle Passwörter ändern und Passwortbeschränkungen für Datenbankbenutzer und Benutzer mit rds_superuser Rolle einrichten. Ab RDS für PostgreSQL Version 14 und höher kann die rds_password Rolle nur für Datenbankbenutzer Passwörter ändern und Passwortbeschränkungen einrichten. Nur Benutzer mit rds_superuser Rolle können diese Aktionen für andere Benutzer mit rds_superuser Rolle ausführen.

  • rdsadmin – Eine Rolle, die erstellt wurde, um viele der Verwaltungsaufgaben zu erledigen, die der Administrator mit superuser-Berechtigungen für eine eigenständige PostgreSQL-Datenbank ausführt. Diese Rolle wird intern von Aurora PostgreSQL für viele Verwaltungsaufgaben verwendet.

Anmerkung

Aurora-PostgreSQL-Versionen 15.2 und 14.7 führten ein restriktives Verhalten der rds_superuser-Rolle ein. Einem Aurora PostgreSQL-Benutzer muss die CONNECT-Berechtigung für die entsprechende Datenbank zugewiesen werden, um eine Verbindung herzustellen, auch wenn dem Benutzer die rds_superuser-Rolle zugewiesen ist. Vor den Versionen 14.7 und 15.2 von Aurora PostgreSQL konnte ein Benutzer eine Verbindung zu jeder Datenbank und Systemtabelle herstellen, wenn dem Benutzer die rds_superuser-Rolle zugewiesen war. Dieses restriktive Verhalten steht im Einklang mit den AWS Verpflichtungen von Amazon Aurora zur kontinuierlichen Verbesserung der Sicherheit.

Bitte aktualisieren Sie die entsprechende Logik in Ihren Anwendungen, falls die oben genannte Erweiterung Auswirkungen hat.