PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Beschränken Sie den PostgreSQL-Benutzerzugriff mithilfe von Schemas und Ansichten

Um den PostgreSQL-Zugriff auf bestimmte Tabellen und Spalten zu beschränken, können Sie Schema- und selektive GRANT-Anweisungen verwenden.

Beachten Sie die folgenden Anweisungen, um den Zugriff auf bestimmte Tabellen zu beschränken.

Wenn Sie jedoch den Zugriff auf bestimmte Spalten einschränken müssen, müssen Sie möglicherweise eine Kombination aus Schemas und Ansichten verwenden, um den Zugriff einzuschränken. Sie können dies auch tun, wenn Ihre Datenbank über 1000 Tabellen enthält und Sie versuchen, eine Verbindung zu Chartio herzustellen.

  1. Stellen Sie mit psql oder pgadmin eine Verbindung zu Ihrer PostgreSQL-Datenbank her. Führen Sie Folgendes aus, um eine Liste der Tabellen in Ihrer Datenbank zurückzugeben.

    sudo -u postgres psql c Datenbankname;

  2. Erstellen Sie ein spezifisches Schema für den Nur-Lese-Benutzer von Chartio und führen Sie Folgendes aus:

    SCHEMA ERSTELLEN chartio_read_only; ROLLE ERSTELLEN chartio_schema_user LOGIN PASSWORD ‘secure_password’; GRANT CONNECT ON DATABASE databasename TO chartio_schema_user; GRANT NUTZUNG AUF SCHEMA chartio_read_only TO chartio_schema_user;

  3. Sehen Sie sich die Datenbankbeziehungen mit dem Befehl d an.

    d

    Schema | Name         | Geben Sie  | ein Eigentümer ———-+————————-+———-+————– öffentlich | Konten     | Tisch | Postgres-Öffentlichkeit | Besucher     | Tisch | Postgres-Öffentlichkeit | Benutzer        | Tisch | Postgres-Öffentlichkeit | Abonnements | Tisch | postgres

  4. Ihre Accounts-Tabelle enthält vertrauliche Informationen und Sie möchten, dass Chartio nur auf die Spalten Account_ID und Date__Created zugreift ._ Führen Sie Folgendes aus, um dem Schema chartio_read_only eine Ansicht hinzuzufügen und dem Benutzer chartio_schema_user Zugriff auf diese Ansicht zu gewähren.

    CREATE VIEW chartio_read_only.“Accounts“ AS SELECT Account_ID, Date_Created FROM Accounts; GRANT SELECT ON chartio_read_only.“Accounts“ TO chartio_schema_user;

  5. Erteilen Sie Berechtigungen zum Auswählen aller Daten aus der Tabelle „Besucher“.

    CREATE VIEW chartio_read_only.“Visitors“ AS SELECT * FROM Visitors; GRANT SELECT ON chartio_read_only.“Besucher“ TO chartio_schema_user;

Wenn Sie nun den chartio_schema_user mit Ihrer Datenbank verbinden, kann er nur auf die beiden eingeschränkten Ansichten zugreifen, die Sie dem Schema gewährt haben.

Weitere Informationen finden Sie in der PostgreSQL-Dokumentation.