Es gibt zwei Methoden, die Sie verwenden können. Beide erfordern das Erstellen eines Benutzers und eine Datenbank.
Standardmäßig verbindet sich psql mit der Datenbank mit demselben Namen wie der Benutzer. Es gibt also eine Konvention, dies zur "Datenbank des Benutzers" zu machen . Und es gibt keinen Grund, diese Konvention zu brechen, wenn Ihr Benutzer nur eine Datenbank benötigt. Wir verwenden mydatabase als Beispieldatenbankname.
-
Mit createuser und createdb , können wir den Datenbanknamen explizit angeben,
$ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabaseSie sollten das wahrscheinlich ganz weglassen und stattdessen alle Befehle standardmäßig auf den Namen des Benutzers setzen lassen.
$ sudo -u postgres createuser -s $USER $ createdb $ psql -
Verwendung der SQL-Administrationsbefehle und Verbindung mit einem Passwort über TCP
$ sudo -u postgres psql postgresUnd dann in der psql-Shell
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;Dann können Sie sich einloggen,
$ psql -h localhost -d mydatabase -U myuser -p <port>Wenn Sie den Port nicht kennen, können Sie ihn jederzeit abrufen, indem Sie Folgendes als
postgresausführen Benutzer,SHOW port;Oder,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
Nebenbemerkung:das postgres Benutzer
Ich empfehle NICHT Ändern des postgres Benutzer.
- Es ist normalerweise vom Betriebssystem gesperrt. Niemand soll sich beim Betriebssystem als
postgres"einloggen". . Sie sollten root haben, um sich alspostgreszu authentifizieren . - Es ist normalerweise nicht passwortgeschützt und delegiert an das Host-Betriebssystem. Das ist eine gute Sache . Dies bedeutet normalerweise, sich als
postgresanzumelden Dies ist das PostgreSQL-Äquivalent vonSAvon SQL Server , müssen Sie Schreibzugriff auf die zugrunde liegenden Datendateien haben. Und das bedeutet, dass Sie normalerweise sowieso Chaos anrichten könnten. - Indem Sie dies deaktiviert lassen, beseitigen Sie das Risiko eines Brute-Force-Angriffs durch einen benannten Superuser. Das Verbergen und Verschleiern des Namens des Superusers hat Vorteile.