All diese Fragen werden grundsätzlich in der Dokumentation beantwortet . Um genau zu sein:
Eine Rolle ist eine Entität, die Datenbankobjekte besitzen und über Datenbankberechtigungen verfügen kann. Eine Rolle kann je nach Verwendung als "Benutzer", "Gruppe" oder beides betrachtet werden.
Dies bedeutet, dass intern kein Unterschied zwischen diesen besteht, mit Ausnahme der LOGIN
Option. Wenn Sie angeben LOGIN
(oder verwenden CREATE USER
):
CREATE ROLE dezso WITH LOGIN PASSWORD 'bla';
dezso
wird eine Login-Rolle, sonst nicht. Sie können auch Kennwörter für Nicht-Anmelderollen angeben. Wenn Sie sich später dafür entscheiden, diese zu einer Anmelderolle zu machen, verwenden Sie
CREATE ROLE non_login_role PASSWORD 'bla';
--later
ALTER ROLE non_login_role WITH LOGIN;
Sie haben Recht, wenn Sie sagen , dass eine Authentifizierung nur mit der Anmelderolle möglich ist . Beachten Sie jedoch, dass ein Kennwort nicht immer erforderlich ist - wenn Sie etwas anderes als die Authentifizierungsmethode password
odermd5
verwenden. Andererseits bedeutet dies, dass sich eine Rolle ohne die festgelegte LOGIN
Option in keiner Weise anmelden kann.
Schließlich können Sie Regeln pg_hba.conf
für Nicht-Anmelderollen festlegen. Da diese Rollen jedoch nur zur Authentifizierung verwendet werden, haben sie keine Auswirkungen (es sei denn, Sie aktivieren die Anmeldung später wie oben beschrieben).
psql
für alles ausschließlich normale SQL-Anweisungen verwende.