GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie konfiguriere ich postgresql zum ersten Mal?

Die anderen Antworten waren für mich nicht ganz zufriedenstellend. Hier ist, was für postgresql-9.1 auf Xubuntu 12.04.1 LTS funktioniert hat.

  1. Verbinden Sie sich mit der Standarddatenbank mit dem Benutzer postgres:

    sudo -u postgres psql-Vorlage1

  2. Legen Sie das Passwort für den Benutzer postgres fest und beenden Sie dann psql (Strg-D):

    ALTER USER Postgres mit verschlüsseltem Passwort „xxxxxxx“;

  3. Bearbeiten Sie pg_hba.conf Datei:

    sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    und ändern Sie "peer" in "md5" in der Zeile bezüglich postgres:

    lokal      alle     postgres Peer md5

    Um zu erfahren, welche Version von postgresql Sie ausführen, suchen Sie nach dem Versionsordner unter /etc/postgresql . Sie können auch Nano oder einen anderen Editor anstelle von VIM verwenden.

  4. Starten Sie die Datenbank neu :

    sudo /etc/init.d/postgresql neu starten

    (Hier können Sie überprüfen, ob es mit psql -U postgres funktioniert hat ).

  5. Erstellen Sie einen Benutzer mit demselben Namen wie Sie (um ihn zu finden, können Sie whoami eingeben ):

    sudo createuser -U postgres -d -e -E -l -P -r -s <my_name>

    Die Optionen weisen postgresql an, einen Benutzer zu erstellen, der sich anmelden, Datenbanken erstellen, neue Rollen erstellen kann, ein Superuser ist und ein verschlüsseltes Passwort haben wird. Die wirklich wichtigen sind -P -E, damit Sie aufgefordert werden, das zu verschlüsselnde Passwort einzugeben, und -d, damit Sie createdb eingeben können .

    Achten Sie auf Passwörter :Es wird Sie zuerst zweimal nach dem neuen Passwort (für den neuen Benutzer) fragen, wiederholt, und dann einmal nach dem Postgres-Passwort (das in Schritt 2 angegebene).

  6. Bearbeiten Sie erneut pg_hba.conf Datei (siehe Schritt 3 oben) und ändern Sie "peer" in "md5" in der Zeile, die "alle" anderen Benutzer betrifft:

    lokal      alle     alle Peer md5

  7. Starten Sie neu (wie in Schritt 4) und prüfen Sie, ob Sie sich ohne -U postgres:

    anmelden können

    psql-Vorlage1

    Beachten Sie, dass, wenn Sie nur psql tun , wird es fehlschlagen, da es versuchen wird, Sie mit einer Standarddatenbank zu verbinden, die denselben Namen wie Sie hat (z. B. whoami ). template1 ist die Admin-Datenbank, die von Anfang an dabei ist.

  8. Jetzt createdb <dbname> sollte funktionieren.


Unter Linux ist PostgresQL normalerweise so konfiguriert, dass sich der Root-Benutzer als Postgres-Superuser postgres anmelden kann von der Shell (Konsole oder ssh).

$ psql -U postgres

Dann würden Sie einfach wie gewohnt eine neue Datenbank erstellen:

CREATE ROLE myuser LOGIN password 'secret';
CREATE DATABASE mydatabase ENCODING 'UTF8' OWNER myuser;

Dies sollte funktionieren, ohne pg_hba.conf zu berühren . Wenn Sie dies mit einem GUI-Tool über das Netzwerk tun möchten, müssen Sie sich mit pg_hba.conf herumschlagen .


Es gibt zwei Methoden, die Sie verwenden können. Beide erfordern das Erstellen eines Benutzers und eine Datenbank.

  1. Mit createuser und createdb ,

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. 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:der postgres Benutzer

Ich empfehle NICHT Ändern des postgres Benutzer.

  1. Es ist normalerweise vom Betriebssystem gesperrt. Niemand soll sich beim Betriebssystem als postgres "einloggen". . Sie sollten root haben, um sich als postgres zu authentifizieren .
  2. 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 von SA von SQL Server , müssen Sie Schreibzugriff auf die zugrunde liegenden Datendateien haben. Und das bedeutet, dass Sie normalerweise sowieso Chaos anrichten könnten.
  3. 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.

Linux
  1. So installieren und konfigurieren Sie Postgres 13 Ubuntu 20.04

  2. So installieren und konfigurieren Sie Postgres 13 auf Centos 8

  3. Wie wird der Platzhalter * als Befehl interpretiert?

  4. So installieren Sie einen PostgreSQL-Server unter Ubuntu 18.04

  5. So ändern Sie die Zeitzone für einen Docker-Container

So konfigurieren Sie Ihr Raspberry Pi OS, um es zum ersten Mal zu verwenden

Wie man die Gruppen eines Linux-Benutzers kennt

So konfigurieren Sie ONLYOFFICE CRM für Ihre geschäftlichen Anforderungen

Wie deaktiviere ich die SSH-Anmeldung für den Root-Benutzer in Linux?

So installieren und konfigurieren Sie die CSF-Firewall für Linux

Wie lösche ich die Anmeldeinformationen in AWS Configure?