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 mydatabase
Sie 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 postgres
Und 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
postgres
ausfü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 alspostgres
zu authentifizieren . - Es ist normalerweise nicht passwortgeschützt und delegiert an das Host-Betriebssystem. Das ist eine gute Sache . Dies bedeutet normalerweise, sich als
postgres
anzumelden Dies ist das PostgreSQL-Äquivalent vonSA
von 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.