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

Was ist der Unterschied zwischen einem Benutzer und einer Rolle?

Frühere Versionen von Postgres und einigen anderen DB-Systemen haben separate Konzepte von „Gruppen“ (denen Zugriff auf Datenbankobjekte gewährt wird) und „Benutzern“ (die sich anmelden können und Mitglieder einer oder mehrerer Gruppen sind).

In modernen Versionen von Postgres wurden die beiden Konzepte zusammengeführt:Eine "Rolle" kann die Fähigkeit haben, sich anzumelden, die Fähigkeit, von anderen Rollen "zu erben" (wie ein Benutzer ein Mitglied einer Gruppe ist oder eine Gruppe ein Mitglied ist). einer anderen Gruppe) und Zugriff auf Datenbankobjekte.

Der Einfachheit halber bezeichnen viele Tools und Handbücher jeden Benutzer mit Anmeldeberechtigung als "Benutzer" oder "Anmelderolle" und alle ohne als "Gruppe" oder "Gruppenrolle", da es nützlich und üblich ist, sich grob daran zu halten diese Struktur. Dies ist ausschließlich eine Konvention der Terminologie, und um die Berechtigungen zu verstehen, müssen Sie nur die Optionen verstehen, die verfügbar sind, wenn Rollen erstellen und Zugriff gewähren .

Auch hier akzeptiert Postgres aus Gründen der Bequemlichkeit immer noch Befehle mit der alten Terminologie, wie z. B. CREATE USER und CREATE GROUP beides sind Aliase für CREATE ROLE . Wenn Sie CREATE USER schreiben , das LOGIN Die Berechtigung wird der neuen Rolle standardmäßig hinzugefügt, um das alte Verhalten zu emulieren, als dies ein separater Befehl war.