Steuern des Benutzerzugriffs auf die PostgreSQL−Datenbank - 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.

Steuern des Benutzerzugriffs auf die PostgreSQL−Datenbank

Neue Datenbanken in PostgreSQL werden immer mit Standardberechtigungen im public-Schema der Datenbank erstellt, mit dem alle Datenbankbenutzer und -rollen Objekte erstellen können. Diese Berechtigungen ermöglichen es Datenbankbenutzern, eine Verbindung mit der Datenbank herzustellen und während der Verbindung temporäre Tabellen zu erstellen.

Es wird empfohlen, diese public-Standardberechtigungen zu widerrufen, um den Benutzerzugriff auf die Datenbank-Instances, die Sie auf Ihrem Primärknoten des Aurora-PostgreSQL-DB-Clusters erstellen, besser kontrollieren können. Danach erteilen Sie Datenbankbenutzern auf einer detaillierteren Basis spezifische Berechtigungen, wie im Folgenden gezeigt.

So richten Sie Rollen und Berechtigungen für eine neue Datenbank-Instance ein

Angenommen, Sie richten eine Datenbank für einen neu erstellten Aurora-PostgreSQL-DB-Cluster ein, die von mehreren Forschenden verwendet wird, die alle Lese-/Schreibzugriff auf die Datenbank benötigen.

  1. Verwenden Sie psql (oder pgAdmin) zum Herstellen einer Verbindung mit dem primären Aurora-PostgreSQL-DB-Cluster:

    psql --host=your-cluster-instance-1.666666666666.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password

    Geben Sie bei der Aufforderung Ihr Passwort ein. Der psql-Client verbindet und zeigt die standardmäßige administrative Verbindungsdatenbank postgres=> als Eingabeaufforderung an.

  2. Gehen Sie wie folgt vor, um zu verhindern, dass Datenbankbenutzer Objekte im public-Schema erstellen:

    postgres=> REVOKE CREATE ON SCHEMA public FROM PUBLIC; REVOKE
  3. Als Nächstes erstellen Sie eine neue Datenbank-Instance:

    postgres=> CREATE DATABASE lab_db; CREATE DATABASE
  4. Widerrufen Sie alle Berechtigungen aus dem PUBLIC-Schema in dieser neuen Datenbank.

    postgres=> REVOKE ALL ON DATABASE lab_db FROM public; REVOKE
  5. Erstellen Sie eine Rolle für Datenbankbenutzer.

    postgres=> CREATE ROLE lab_tech; CREATE ROLE
  6. Geben Sie Datenbankbenutzern mit dieser Rolle die Möglichkeit, eine Verbindung mit der Datenbank herzustellen.

    postgres=> GRANT CONNECT ON DATABASE lab_db TO lab_tech; GRANT
  7. Gewähren Sie allen Benutzern mit der lab_tech-Rolle alle Berechtigungen für diese Datenbank.

    postgres=> GRANT ALL PRIVILEGES ON DATABASE lab_db TO lab_tech; GRANT
  8. Erstellen Sie Datenbankbenutzer wie folgt:

    postgres=> CREATE ROLE lab_user1 LOGIN PASSWORD 'change_me'; CREATE ROLE postgres=> CREATE ROLE lab_user2 LOGIN PASSWORD 'change_me'; CREATE ROLE
  9. Gewähren Sie diesen beiden Benutzern die Berechtigungen, die mit der lab_tech-Rolle verknüpft sind:

    postgres=> GRANT lab_tech TO lab_user1; GRANT ROLE postgres=> GRANT lab_tech TO lab_user2; GRANT ROLE

An dieser Stelle können lab_user1 und lab_user2 eine Verbindung mit der lab_db-Datenbank herstellen. Dieses Beispiel folgt nicht den bewährten Methoden für den Unternehmensgebrauch, darunter das Erstellen mehrerer Datenbank-Instances, verschiedener Schemas und das Erteilen eingeschränkter Berechtigungen. Umfassende Informationen und zusätzliche Szenarien finden Sie unter Verwalten von PostgreSQL-Benutzern und -Rollen.

Weitere Informationen zu Berechtigungen in PostgreSQL-Datenbanken finden Sie unter dem Befehl GRANT in der PostgreSQL-Dokumentation.