PostgreSQL -Zeilenebene Sicherheitsbeispiele

PostgreSQL -Zeilenebene Sicherheitsbeispiele

PostgreSQL wurde ein weit verbreitetes Datenbanksystem weltweit und ist stark gesichert. PostgreSQL ist mit den beiden Arten von Wertpapieren vorbei gekommen, e.G. Spaltenebene und Zeilenebene. Unser Hauptthema ist die Sicherheit auf Zeilenebene in Postgresql. Die Sicherheit auf Reihenebene soll ein einfaches und dringend benötigtes Tool in Postgresql Security sein. Es wurde verwendet, um den Benutzerzugriff auf bestimmte Tabellen und Datensätze basierend auf einigen Richtlinien zu steuern. Durch die Anwendung der Sicherheit auf Zeilenebene beschränken wir Benutzer, die Tabellendatensätze, die die Daten zu ihnen enthalten.

Sie müssen die SQL -Shell für PostgreSQL 13 aus der Startleiste von Windows 10 öffnen. Nach dem Öffnen erhalten Sie den schwarzen Bildschirm der SQL -Shell. Fügen Sie den Servernamen, den Datenbanknamen, die Portnummer, den Benutzernamen und das Passwort nacheinander hinzu. Die SQL -Shell ist für Ihre weitere Verwendung bereit.

Der Datenbankbenutzer “PostgresIst bereits ein Superuser Ihres Systems. Wenn Sie nicht von einem Superuser angemeldet sind, müssen Sie sich davon anmelden. Die Methode zur Anmeldung von einem Superuser -Konto erfolgt mit dem folgenden Befehl unten in der Shell mit dem Namen einer Datenbank, e.G. Postgres zusammen mit dem Namen eines Superusers, e.G. Postgres. Möglicherweise ist das Passwort für ein Konto erforderlich, wenn es nicht bereits angemeldet ist.

Tabelle erstellen:

Sie müssen eine neue Tabelle innerhalb des Superuser- und Datenbank „Postgres“ erstellen. Also haben wir die benutzt TABELLE ERSTELLEN Fragen zum Erstellen einer Tabelle “prüfen”Mit einigen Spalten wie gezeigt.

Nach dem Erstellen einer Tabelle “prüfen”, Wir haben drei Datensätze für 3 verschiedene Benutzer eingefügt, e.G. Aqsa, Raza und Rimsha über die “EINFÜGEN INAnweisung in der Schale.

Die Tabelle und ihre Datensätze sind auf dem SQL -Shell -Bildschirm mit dem Bildschirm angezeigt WÄHLEN Anfrage.

Benutzer erstellen:

Wir haben mit dem Superuser in SQL Shell auf dem Tischtest gearbeitetPostgres”, Aber wir müssen einige andere Benutzer erstellen, wie in der Tabelle erwähnt, e.G. Aqsa, Raza und Rimsha. Also haben wir die benutzt Benutzer erstellen Befehl dazu, während das Passwort zugewiesen wird. Danach haben wir gewährt WÄHLEN Privilegien für all diese Benutzer nach der Erstellung.

Wenn wir die neu erstellten Benutzer verwendet haben, um die Datensätze einer Tabelle abzurufen “prüfen”, Die Ausgabe zeigt, dass ein Benutzer problemlos auf alle Zeilen aus einer Tabelle zugreifen kann, anstatt eine Zeile mit seinem Namen. Die folgende Ausgabe zeigt die Ausgabe für den Zugriff auf den Table -Test mit einem Benutzer „AQSA“.

Die unterhalb der Ausgabe zeigt die Ausgabe für den Zugriff auf Table -Test mit einem Benutzer “Raza”.

Die folgende Ausgabe gilt für einen Tabellentest mit einem Benutzerrimsha”.

Richtlinien erstellen:

Der Zweck der Sicherheit auf Zeilenebene besteht darin, Benutzer nur zu beschränken, um die Datensätze mit den Informationen über sich selbst zu holen. Wir möchten, dass die Sicherheit auf Zeilenebene die Aufzeichnungen anderer Benutzer nicht abruft. Beginnen wir uns vom Superuser anPostgres”In der SQL -Schale.

Nach dem Anmeldung haben wir die unten angegebene Richtlinienanweisung verwendet, um eine Richtlinie mit dem Namen zu erstellen. “neu" auf dem Tisch "prüfen”. Wir haben das benutztALLESchlüsselwort hier, die alle Privilegien darstellen, e.G. Einfügen, aktualisieren, ändern usw. Sie können es speziell erstellen, indem Sie ein Einfügen, Auswahl, Aktualisieren oder ein beliebiges Schlüsselwort hinzufügen. Die öffentliche Rolle hat alle Rollen angegeben. Sie können auch hier den Benutzer oder die Rolle angeben. Wir haben die "benutzt"VerwendungAusdruck hier. Dadurch wird der aktuell angemeldete Benutzername mit der Tabelle "Test" in der Spalte "Name" verglichen.

Sicherheit der Zeilenebene aktivieren:

Nur die Richtlinie erstellen und auf Rollen und Tabellen angewendet wurde, reicht nicht aus, um eine Änderung zu erhalten. Sie müssen die Sicherheit auf Zeilenebene in der Tabelle „Test“ aktivieren, in der kurz zuvor eine Richtlinie festgelegt ist. Also haben wir den Superuser benutzt “Postgres"Um die Sicherheit auf Zeilenebene auf einer Tabelle zu aktivieren"prüfen" mit dem Tabelle ändern Befehl im angehängten Screenshot angezeigt.

Wie wir uns derzeit vom Superuser angemeldet haben “Postgres", der Befehl "WÄHLEN"Zusammen mit dem Schlüsselwort"current_user”Zeigt den Benutzernamen in der Ausgabe an. Beim Zugriff auf die Tabelle mit dem Befehl SELECT, während Sie sich vom Superuser angemeldet haben, werden alle Datensätze einer Tabelle „Test“ angezeigt. Dies bedeutet.

Jetzt werden wir uns von den neuen Rollen anmelden, die vor einiger Zeit erstellt wurden. Wir haben uns vom Benutzer angemeldet. “aqsa”Und überprüft den aktuell angemeldeten Benutzer. Es kehrt zurück “aqsa”Als aktueller Benutzer. Beim Abholen des Tisches “prüfen"Datensätze nach einem Befehl aus Select, es gibt die Zeilen zurück, die nur zum Benutzernamen gehören."aqsa”Mit einer Spalte„ Name “in der Tabelle angepasst. Alle anderen Zeilen wurden gesichert und können nicht von einem Benutzer betrachtet werdenaqsa”.

Lassen Sie uns vom anderen Benutzer anmelden. “Raza”Vom Terminal und überprüfen Sie den aktuellen Benutzer. Es kehrte zurück “Raza”Als aktueller Benutzer. Die Ausgabe für den Befehl SELECT Zeigt nur den Datensatz für einen Benutzer an “Raza" vom Tisch "prüfen”.

Die Sicherheit auf Zeilenebene hat beim Benutzer gleich funktioniert. “rimsha”Gemäß dem folgenden Ausgangsbild.

Bypass-Sicherheit auf Reihenebene:

Die Umgehungsberechtigungen können verwendet werden, um die Sicherheit auf Zeilenebene von einigen Superusern und anderen privilegierten Benutzern zu überschreiben. Der Benutzer, der Berechtigungen für die Sicherheit auf Zeilenebene hat, kann die Sicherheit auf Zeilenebene für jede Tabelle überschreiben und auch auf die Datensätze anderer Benutzer zugreifen. Also haben wir uns zuerst vom Superuser -Konto innerhalb des Terminals abgemeldet.

Danach haben wir die Rechte eines Benutzers geändert. “Raza”Durch einen auf ihn angewendeten änderenden Benutzerbefehl. Wir haben den Benutzer "Raza" zugewiesen, die Privilegien, die Sicherheit auf Zeilenebene durch zu umgehen, durch “Bypassrls”In der Änderung der Benutzerabfrage wie gezeigt erwähnt.

Melden Sie sich vom Benutzer an “Raza”Aus der Hülle. Sie sehenprüfen”Über die Abfrage auswählen.

Richtlinien fallen lassen:

Melden wir uns noch einmal vom Superuser an, um eine Richtlinie fallen zu lassen. “neu"Das wurde auf den Tabellen" Test "angewendet.

Der Befehl zur Drop -Richtlinie wurde in der Shell verwendet, um eine benannte Richtlinie abzugeben “neu"Aus der Tabelle" Test ".

Nachdem wir eine Richtlinie abgelegt haben, haben wir uns von einem der Benutzer angemeldet, um zu überprüfen, ob sie noch funktioniert oder nicht. Wir haben festgestellt, dass das Tropfen einer Richtlinie den Benutzer nicht ändern konnteaqsa"Oder andere, um die Datensätze einer Tabelle abzurufen"prüfen”. Dies liegt daran, dass wir die Sicherheit auf Zeilenebene noch nicht auf der Tabelle deaktiviert haben.

Sicherheitsstufe auf Zeilenebene deaktivieren:

Um die Sicherheit auf Zeilenebene auf einer Tabelle zu deaktivieren “prüfen”, Melden Sie sich als Superuser an und verwenden Sie die im folgende SNAP angezeigte Abfrage.

Nachdem Sie sich beim anderen Benutzer angemeldet haben, können Sie die Datensätze leicht anzeigen und ändern.

Abschluss:

Dieses Tutorial enthält eine kurze Demonstration der Sicherheit auf Zeilenebene, mit der Benutzer beim Zugriff auf Daten für Sicherheitszwecke eingehalten werden können. Die Sicherheit auf Zeilenebene wurde durch Erstellen von Benutzern, Richtlinien und dann die Sicherheit erreicht. Der Artikel enthält auch die Implementierung zum Ablegen einer Richtlinie und zur Deaktivierung der Sicherheit auf Zeilenebene. Daher ist dieser Artikel ein Bonuspaket für unsere Benutzer, um alles zu tun, von der Ermöglichung der Sicherheit auf Zeilenebene innerhalb eines Take.