GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengkonfigurasi postgresql untuk pertama kalinya?

Jawaban lainnya tidak sepenuhnya memuaskan saya. Inilah yang berhasil untuk postgresql-9.1 di Xubuntu 12.04.1 LTS.

  1. Sambungkan ke database default dengan postgres pengguna:

    sudo -u postgres psql template1

  2. Tetapkan kata sandi untuk pengguna postgres, lalu keluar dari psql (Ctrl-D):

    ALTER USER postgres dengan kata sandi terenkripsi 'xxxxxxx';

  3. Edit pg_hba.conf berkas:

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

    dan ubah "peer" menjadi "md5" pada baris mengenai postgres:

    lokal      semua     postgres rekan md5

    Untuk mengetahui versi postgresql yang Anda jalankan, cari folder versi di bawah /etc/postgresql . Selain itu, Anda dapat menggunakan Nano atau editor lain selain VIM.

  4. Mulai ulang basis data :

    sudo /etc/init.d/postgresql restart

    (Di sini Anda dapat memeriksa apakah itu berfungsi dengan psql -U postgres ).

  5. Buat pengguna dengan nama yang sama dengan Anda (untuk menemukannya, Anda dapat mengetikkan whoami ):

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

    Opsi memberi tahu postgresql untuk membuat pengguna yang dapat masuk, membuat basis data, membuat peran baru, adalah pengguna super, dan akan memiliki kata sandi terenkripsi. Yang sangat penting adalah -P -E, agar Anda diminta untuk mengetikkan kata sandi yang akan dienkripsi, dan -d agar Anda dapat melakukan createdb .

    Waspadalah terhadap sandi :ini pertama-tama akan meminta Anda dua kali kata sandi baru (untuk pengguna baru), berulang, dan kemudian sekali kata sandi postgres (yang ditentukan pada langkah 2).

  6. Sekali lagi, edit pg_hba.conf file (lihat langkah 3 di atas), dan ubah "peer" menjadi "md5" pada baris tentang "semua" pengguna lain:

    lokal      semua     semua rekan md5

  7. Mulai ulang (seperti pada langkah 4), dan periksa apakah Anda dapat masuk tanpa -U postgres:

    templat psql1

    Perhatikan bahwa jika Anda hanya melakukan psql , itu akan gagal karena akan mencoba menghubungkan Anda ke database default yang memiliki nama yang sama dengan Anda (mis. whoami ). template1 adalah database admin yang ada di sini sejak awal.

  8. Sekarang createdb <dbname> harus bekerja.


Di Linux PostgresQL biasanya dikonfigurasi untuk mengizinkan pengguna root untuk login sebagai superuser postgres postgres dari shell (konsol atau ssh).

$ psql -U postgres

Maka Anda cukup membuat database baru seperti biasa:

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

Ini seharusnya bekerja tanpa menyentuh pg_hba.conf . Jika Anda ingin dapat melakukan ini menggunakan beberapa alat GUI melalui jaringan - maka Anda perlu mengotak-atik pg_hba.conf .


Ada dua cara yang bisa Anda gunakan. Keduanya membutuhkan pembuatan pengguna dan basis data.

  1. Menggunakan createuser dan createdb ,

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. Menggunakan perintah administrasi SQL, dan menghubungkan dengan sandi melalui TCP

    $ sudo -u postgres psql postgres
    

    Dan, kemudian di shell psql

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

    Kemudian Anda dapat masuk,

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

    Jika Anda tidak mengetahui portnya, Anda selalu bisa mendapatkannya dengan menjalankan perintah berikut, seperti postgres pengguna,

    SHOW port;
    

    Atau,

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

Sidenote:postgres pengguna

Saya menyarankan BUKAN memodifikasi postgres pengguna.

  1. Biasanya dikunci dari OS. Tidak seorang pun seharusnya "masuk" ke sistem operasi sebagai postgres . Anda seharusnya memiliki root untuk mengautentikasi sebagai postgres .
  2. Biasanya tidak dilindungi sandi dan didelegasikan ke sistem operasi host. Ini adalah hal yang baik . Ini biasanya berarti untuk masuk sebagai postgres yang setara dengan PostgreSQL dari SA SQL Server , Anda harus memiliki akses tulis ke file data yang mendasarinya. Dan, itu berarti Anda biasanya dapat merusak malapetaka.
  3. Dengan menonaktifkan ini, Anda menghilangkan risiko serangan brute force melalui pengguna super bernama. Menyembunyikan dan menyamarkan nama pengguna super memiliki kelebihan.

Linux
  1. Cara Mengubah Zona Waktu Untuk Wadah Docker

  2. Konfigurasikan Jenkins untuk berbagai pengguna.rumah

  3. Bagaimana cara memaksa pengguna untuk mengubah kata sandi saat pertama kali masuk menggunakan ssh?

  1. Cara Menginstal dan Mengonfigurasi Postgres 13 Ubuntu 20.04

  2. Bagaimana cara kerja izin file untuk pengguna root?

  3. PostgreSQL:Hapus persyaratan kata sandi untuk pengguna postgres

  1. Cara Menginstal dan Mengonfigurasi Postgres 13 di Centos 8

  2. Cara Menginstal dan Mengkonfigurasi Postgres 14 di Debian 11

  3. Cara Menginstal dan Mengonfigurasi Postgres 14 di Fedora 34