
Meine Frage
Kann ich die Berechtigungen für einen Benutzer (z. B.: postgres
) so festlegen, dass sich dieser Benutzer nur vom lokalen TCP-Host aus anmelden darf, nicht aber vom Internet?
Vertrauenswürdige Sockets vs. Passwörter für Remotes
Ich verstehe, dass Sie Postgres initialisieren können, um lokalen Benutzern die Anmeldung ohne Kennwort und Remote-Hosts die Anmeldung mit einem Kennwort zu ermöglichen:
initdb \
-D "$POSTGRES_DATA_DIR/" \
--username postgres --pwfile "$PWFILE" \
--auth-local=trust --auth-host=password
Intranet vs. Internet
Für jedes System, das eine Verbindung über das Internet herstellt, möchte ich einen Benutzer verwenden, der über eine sehr, sehr starke (nicht einprägsame), zufällige 128-Bit-Zeichenfolge verfügt.
Für den lokalen und Intranet-Zugriff hätte ich allerdings lieber einen Benutzernamen und ein Kennwort, die ich mir merken (und eingeben) kann.
Kann ich das tun ... oder muss ich nur einen Benutzer pro System einrichten, der eine Verbindung herstellen darf, mit .pgpass
jeweils einem?
(Ich möchte keine Schlüssel in Klartextdateien zwischen Computern teilen.)
Antwort1
Sie haben keine Informationen zu Ihrer PostgreSQL-Version angegeben. Ich gehe davon aus, dass Sie PostgreSQL 12 verwenden.
Kann ich die Berechtigungen für einen Benutzer (z. B. Postgres) so festlegen, dass sich dieser Benutzer nur vom lokalen TCP-Host aus anmelden darf, nicht aber vom Internet?
Ja, verwendenpg_hba.conf
. Sie können dies zunächst überhba_file
Laufzeitkonfiguration.
Für den lokalen und Intranet-Zugriff hätte ich allerdings lieber einen Benutzernamen und ein Kennwort, die ich mir merken (und eingeben) kann.
Wenn Sie einen nur lokalen Benutzer hinzufügen möchten, der mit einem Passwort geschützt ist, fügen Sie hinzu
local <database_name> <local-only_user_name> scram-sha-256
in deinem pg_hba.conf
.
Wahrscheinlich möchten Sie den Benutzer zuerst über Folgendes erstellen CREATE ROLE
:
CREATE ROLE username LOGIN ENCRYPTED PASSWORD 'insert-your-password-here';
Möglicherweise möchten Sie auch Einträge prüfen host
und aufzeichnen, um sie Ihrer Konfiguration der Intranet- und internetbasierten Authentifizierung hostssl
hinzuzufügen .pg_hba.conf
Weitere Informationen finden Sie in den verlinkten Dokumentationen.