PostgreSQL Gewährt dem Benutzer alle Berechtigungen für das Schema

Postgresql Gewahrt Dem Benutzer Alle Berechtigungen Fur Das Schema



Datenbanken sind von entscheidender Bedeutung, und es ist die Aufgabe des Administrators, zu steuern, welche verschiedenen Rollen die Benutzer innerhalb einer bestimmten Datenbank übernehmen können. Als Teil der Autorisierung kann der Administrator Benutzerentitäten innerhalb der Datenbank definieren und den Rollen verschiedene Berechtigungen erteilen oder entziehen.

Auf diese Weise erhalten Sie die Kontrolle darüber, wer auf eine Datenbank zugreifen kann und welche Berechtigungen sie haben, wenn sie auf die Datenbank zugreifen können. Beispielsweise können Sie die Datenbankänderung widerrufen oder einem oder mehreren Benutzern in einer bestimmten Tabelle alle Berechtigungen für das Schema erteilen. Diese Anleitung beschreibt, wie Sie PostgreSQL verwenden, um einem Benutzer alle Berechtigungen für das Schema zu erteilen.







So erteilen Sie Benutzern in PostgreSQL Berechtigungen

Wenn Sie eine neue Rolle erstellen, erhalten sie standardmäßig einige Berechtigungen. Die meisten Berechtigungen erfordern jedoch, dass der Administrator sie verschiedenen Benutzern gewährt, um den Zugriff und die Kontrolle eines Schemas zu regulieren. Sie können alle Privilegien auf einmal oder separat gewähren.



Lassen Sie uns für dieses Tutorial eine neue erstellen Rolle genannt linuxhint1 .



$ sudo -iu postgr
# Rolle erstellen linuxhint1 Login-Passwort ‚linuxhint‘;


Beachten Sie, dass wir angemeldet sind als postgres, die Standardrolle, die nach der Installation von PostgreSQL erstellt wird.






Mit der erstellten Rolle (Benutzer) können wir die verfügbaren Rollen mit dem folgenden Befehl auflisten:

# \ aus


Die verfügbaren Rollen werden in Tabellenform angezeigt.




Postgres ist die Standardrolle und hat die meisten Privilegien bereits gewährt. Aber die neue Rolle linuxhint1, hat keine Privilegien, bis wir sie gewähren.

1. Gewähren eines bestimmten Privilegs für einen Benutzer

Die erstellte Rolle kann das Schema nicht ändern, es sei denn, Sie erlauben es. Lassen Sie uns dies überprüfen, indem wir zuerst eine Tabelle als Standardrolle erstellen. postgr.

# Tabellennamen erstellen ( m_id int wird immer generiert wie Identität, Vorname vachar ( 100 ) nicht null, lname varchar ( 100 ) nicht null, Alter int ) ;



Sie können die verfügbaren Beziehungen wie unten gezeigt auflisten:


Öffnen Sie als Nächstes eine neue Shell und melden Sie sich mit der anderen Rolle bei PostgreSQL an. linuxhint1, die wir zuvor mit dem folgenden Befehl erstellt haben:

$ psql -IN linuxhint1 -d postgr



Das -d gibt an, dass die Rolle die Postgres-Datenbank verwenden soll.

Versuchen Sie, den Inhalt der Tabelle zu lesen, die wir mithilfe von erstellt haben AUSWÄHLEN Befehl.

# AUSWÄHLEN * VON Namen;


Es gibt a zurück Erlaubnis verweigert Fehler, der den Benutzer daran hindert, auf die Tabelle zuzugreifen.


In einem solchen Fall müssen wir den Rollenberechtigungen zum Auswählen/Anzeigen von Daten aus der angegebenen Tabelle mit der folgenden Syntax erteilen:

# GRANT Privilegienname ON Tabellenname TO Rollenname;


Verwenden Sie zum Erteilen der Berechtigungen die Postgres-Sitzung.


Versuchen Sie nach der Gewährung, den vorherigen Befehl erneut auszuführen.


Das ist es. Sie haben es geschafft, dem bestimmten Benutzer das Auswahlrecht zu erteilen.

2. Gewähren aller Privilegien für Schema an einen Benutzer

Bisher ist es uns gelungen, einem Benutzer nur eine Berechtigung für das Schema zu erteilen. Nun, das ist nicht genug. Der Benutzer kann das Schema nicht ändern, es sei denn, Sie gewähren ihm alle Berechtigungen, z. B. Einfügen und Aktualisieren.

Es gibt verschiedene Möglichkeiten, dies zu erreichen. Lassen Sie uns zuerst Gewähren Sie dem Benutzer alle Berechtigungen für eine bestimmte Tabelle unter Verwendung der folgenden Syntax:

# GRANT ALL ON Tabellenname TO Rollenname;



Der Benutzer kann mit der bestimmten Tabelle interagieren und diese ändern. Sie können jedoch nicht mit anderen Tabellen im Schema arbeiten.

Zu Gewähren Sie alle Berechtigungen für alle Tabellen in einem bestimmten Schema , verwenden Sie die folgende Syntax:

# GRANT ALL ON ALL TABLES IN SCHEMA schema_name TO role_name;



Schließlich können Sie Gewähren Sie einer bestimmten Rolle bestimmte Privilegien, z. B. das Einfügen oder Auswählen aller Tabellen im Schema .

# GRANT Privilege_Name ON ALL TABLES IN SCHEMA Schema_Name TO Role_Name;



Die Rolle kann Daten in allen Tabellen im angegebenen Schema auswählen. Auf diese Weise definieren Sie, welche Berechtigungen für das Schema verschiedenen Benutzern gewährt werden sollen.

Fazit

PostgreSQL ist ein leistungsstarkes DBMS. Es verfügt über verschiedene Funktionen, einschließlich der Möglichkeit, dass der Administrator Benutzern verschiedene Berechtigungen erteilt. Benutzern alle Berechtigungen für das Schema zu erteilen bedeutet, dass der Benutzer alle Tabellen im angegebenen Schema ändern und mit ihnen interagieren kann. Wir haben gesehen, wie man diese und andere Möglichkeiten anwendet, um Berechtigungen für das Schema mithilfe der GRANT-Anweisung in PostgreSQL an Rollen zu vergeben.