Steuern des Benutzerzugriffs auf die Postgre-Datenbank SQL - Amazon Relational Database Service

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 Postgre-Datenbank SQL

Neue Datenbanken in Postgre SQL werden immer mit einem Standardsatz von Rechten im public Datenbankschema erstellt, der es allen Datenbankbenutzern und Rollen ermöglicht, Objekte zu erstellen. Diese Berechtigungen ermöglichen es Datenbankbenutzern, eine Verbindung mit der Datenbank herzustellen und während der Verbindung temporäre Tabellen zu erstellen.

Um den Benutzerzugriff auf die Datenbank-Instances, die Sie auf Ihrer RDS for SQL Postgre-DB-Instance erstellen, besser kontrollieren zu können, empfehlen wir Ihnen, diese public Standardberechtigungen zu widerrufen. 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 auf einem neu erstellten ein, die von mehreren Forschern verwendet werden soll, die alle Lese- und Schreibzugriff auf die Datenbank benötigen.

  1. Verwenden Sie psql (oderpgAdmin), um eine Verbindung Ihre RDS für SQL Postgre-DB-Instance:

    psql --host=your-db-instance.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. Umfassendere Informationen und zusätzliche Szenarien finden Sie unter SQLPostgre-Benutzer und -Rollen verwalten.

Weitere Informationen zu Rechten in SQL Postgre-Datenbanken finden Sie in dem GRANTBefehl in der SQL Postgre-Dokumentation.