GNU/Linux >> Znalost Linux >  >> Linux

Jak nakonfigurovat postgresql poprvé?

Ostatní odpovědi mě úplně neuspokojily. Zde je to, co fungovalo pro postgresql-9.1 na Xubuntu 12.04.1 LTS.

  1. Připojte se k výchozí databázi pomocí uživatelského postgres:

    sudo -u postgres psql template1

  2. Nastavte heslo pro uživatele postgres a poté ukončete psql (Ctrl-D):

    ALTER USER postgres se zašifrovaným heslem 'xxxxxxx';

  3. Upravte pg_hba.conf soubor:

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

    a změňte "peer" na "md5" na řádku týkajícím se postgres:

    místní      všechny     postgres peer md5

    Chcete-li zjistit, jakou verzi postgresql používáte, vyhledejte složku verze pod /etc/postgresql . Místo VIM můžete také použít Nano nebo jiný editor.

  4. Restartujte databázi:

    sudo /etc/init.d/postgresql restart

    (Zde můžete zkontrolovat, zda to fungovalo s psql -U postgres ).

  5. Vytvořte uživatele se stejným jménem jako vy (abyste ho našli, můžete napsat whoami ):

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

    Možnosti říkají postgresql, aby vytvořil uživatele, který se může přihlásit, vytvářet databáze, vytvářet nové role, je superuživatelem a bude mít zašifrované heslo. Opravdu důležité jsou -P -E, takže budete požádáni o zadání hesla, které bude zašifrováno, a -d, abyste mohli provést createdb .

    Pozor na hesla :nejprve se vás dvakrát zeptá na nové heslo (pro nového uživatele), zopakuje, a poté jednou na heslo postgres (to, které je zadáno v kroku 2).

  6. Znovu upravte pg_hba.conf soubor (viz krok 3 výše) a změňte "peer" na "md5" na řádku týkajícím se "všech" ostatních uživatelů:

    místní      vše     vše peer md5

  7. Restartujte (jako v kroku 4) a zkontrolujte, zda se můžete přihlásit bez -U postgres:

    psql template1

    Všimněte si, že pokud uděláte pouhých psql , selže, protože se vás pokusí připojit k výchozí databázi se stejným názvem jako vy (tj. whoami ). template1 je databáze administrátorů, která je zde od začátku.

  8. Nyní createdb <dbname> by mělo fungovat.


V Linuxu je PostgresQL obvykle nakonfigurován tak, aby umožňoval uživateli root přihlásit se jako superuživatel postgres postgres ze shellu (konzole nebo ssh).

$ psql -U postgres

Pak byste prostě vytvořili novou databázi jako obvykle:

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

To by mělo fungovat, aniž byste se dotkli pg_hba.conf . Pokud to chcete udělat pomocí nějakého nástroje GUI přes síť - pak byste si museli pohrát s pg_hba.conf .


Můžete použít dvě metody. Oba vyžadují vytvoření uživatele a databázi.

  1. Pomocí createuser a createdb ,

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. Použití administračních příkazů SQL a připojení pomocí hesla přes TCP

    $ sudo -u postgres psql postgres
    

    A pak v prostředí psql

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;
    

    Poté se můžete přihlásit,

    $ psql -h localhost -d mydatabase -U myuser -p <port>
    

    Pokud port neznáte, můžete jej vždy získat spuštěním následujícího příkazu, jako postgres uživatel,

    SHOW port;
    

    Nebo,

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf
    

Sidenote:postgres uživatel

Doporučuji NE úpravou postgres uživatel.

  1. Obvykle je uzamčen z operačního systému. Nikdo se nemá "přihlašovat" do operačního systému jako postgres . Abyste se mohli autentizovat jako postgres, musíte mít root .
  2. Obvykle není chráněn heslem a deleguje hostitelský operační systém. To je dobrá věc . To obvykle znamená, že se chcete přihlásit jako postgres což je PostgreSQL ekvivalent SQL Serveru SA , musíte mít přístup pro zápis k základním datovým souborům. A to znamená, že za normálních okolností byste stejně mohli způsobit zkázu.
  3. Pokud toto ponecháte deaktivované, odstraníte riziko útoku hrubou silou prostřednictvím jmenovaného superuživatele. Skrytí a zakrytí jména superuživatele má výhody.

Linux
  1. Jak nainstalovat server PostgreSQL na Ubuntu 18.04

  2. Jak donutím uživatele, aby si změnil heslo při prvním přihlášení pomocí ssh?

  3. Jak fungují oprávnění k souborům pro uživatele root?

  1. Jak nainstalovat a nakonfigurovat Postgres 14 Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Postgres 14 na Debian 11

  3. PostgreSQL:Odstraňte požadavek na heslo pro uživatele postgres

  1. Jak nainstalovat a nakonfigurovat Postgres 13 Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Postgres 13 na Centos 8

  3. Jak nainstalovat a nakonfigurovat Postgres 14 na Fedoře 34