GNU/Linux >> Belajar Linux >  >> Panels >> Webmin

Server Database PostgreSQL

Halaman ini mencakup Server Database PostgreSQL , dan menjelaskan cara menggunakan Webmin untuk mengelola tabel, pengguna, grup, dan data.

Isi

Pengantar PostgreSQL

Seperti Server Database MySQL, PostgreSQL adalah server database gratis yang mendukung banyak database dan tabel, dan memungkinkan klien untuk menanyakannya dengan SQL. Ini sangat berguna bagi programmer yang menulis aplikasi yang perlu menggunakan database untuk menyimpan informasi. Bahasa populer seperti Perl, C, Java dan PHP semuanya memiliki API untuk mengakses database PostgreSQL.

Server PostgreSQL dapat meng-host beberapa database, dan setiap database dapat berisi beberapa tabel. Sebuah tabel pada gilirannya berisi bidang, yang masing-masing memiliki jenis dan ukuran. Tabel berisi catatan, yang masing-masing biasanya berisi informasi tentang beberapa objek, seperti orang, produk, atau pembelian. Bidang dapat dianggap sebagai kolom dalam tabel, dan catatan data sebenarnya sebagai baris. Beberapa bidang juga dapat berisi beberapa nilai, seperti larik.

SQL (yang merupakan singkatan dari Structured Query Language) adalah bahasa untuk mengekstrak data dari atau memperbarui data dalam database. Hampir semua database menggunakan SQL, dan sintaksnya umumnya sama di semua paket database yang berbeda, seperti Oracle, PostgreSQL, dan MySQL. Sintaksnya tidak tercakup dalam bab ini.

Paket untuk PostgreSQL hadir dengan banyak distribusi Linux, dan dapat dikompilasi dan diinstal di hampir semua jenis Unix. Pengoperasiannya sama pada semua sistem operasi, dan demikian pula modul Webmin untuk mengelolanya.

PostgreSQL terdiri dari proses server yang membaca dan menulis file database yang sebenarnya, dan satu set program klien yang berkomunikasi dengan server. Yang paling umum digunakan adalah perintah psql, yang memungkinkan pengguna untuk mengeksekusi query SQL dan melihat hasilnya. Tak satu pun dari klien mengakses file database secara langsung - yang diserahkan sepenuhnya ke server.

Semua file database PostgreSQL disimpan di bawah direktori seperti /var/lib/pgsql atau /usr/local/pgsql. Selain itu, ada beberapa file konfigurasi teks yang memengaruhi pengoperasian server dan klien. Yang paling penting adalah pg_hba.conf, yang mencantumkan host klien yang diizinkan untuk terhubung ke server. Ini adalah satu-satunya file yang Webmin edit secara langsung - semua konfigurasi database lainnya dilakukan dengan menghubungkan ke server database, baik secara langsung atau melalui perintah psql.

Modul Server Database PostgreSQL

Modul ini memungkinkan administrasi untuk mengelola database, tabel, field, dan record di server PostgreSQL. Dalam banyak hal sangat mirip dengan modul MySQL Database Server. Saat Anda mengklik ikonnya di kategori Server di Webmin, halaman utama menampilkan daftar database yang ada di sistem Anda seperti yang ditunjukkan pada tangkapan layar ini:


Halaman utama modul PostgreSQL

Jika Webmin mendeteksi bahwa PostgreSQL tidak diinstal, belum diinisialisasi atau tidak dapat terhubung, halaman utama tidak akan muncul seperti pada gambar di atas. Sebaliknya, beberapa jenis pesan kesalahan akan ditampilkan. Yang paling umum dibahas dalam beberapa paragraf berikutnya.

Jika pesan PostgreSQL tidak berjalan di sistem Anda muncul, Anda harus memulai server database sebelum modul ini dapat digunakan untuk mengelolanya. Cukup klik Mulai Server PostgreSQL tombol di bagian bawah halaman. Jika Anda ingin memulainya saat boot mulai sekarang, gunakan modul Bootup dan Shutdown (tercakup pada Bootup dan Shutdown) untuk membuat tindakan baru untuk memulainya. Pada sebagian besar distribusi Linux, paket PostgreSQL menyertakan skrip tindakan bootup yang disebut postgres atau postgresql yang tidak diaktifkan secara default.

Jika PostgreSQL dijalankan oleh Webmin tidak mengetahui nama pengguna dan kata sandi administrasi yang diperlukan untuk menghubungkannya, dan formulir *Login PostgreSQL* akan ditampilkan di halaman utama. Anda harus memasukkan detail login yang valid untuk server database Anda, biasanya untuk pengguna postgres yang memiliki akses penuh ke semua database dan fitur. Masuk karena beberapa pengguna dengan hak istimewa lainnya mungkin bekerja pada awalnya, tetapi Anda tidak akan dapat menggunakan semua fitur modul. Terkadang PostgreSQL diatur untuk mengautentikasi pengguna dengan nama pengguna Unix mereka, bukan dengan login dan kata sandi terpisah (mode otentikasi ident). Jika hal ini terjadi pada sistem Anda, Anda perlu memeriksa Hubungkan sebagai pengguna Unix yang sama? kotak pada formulir.

Jika muncul pesan error seperti File konfigurasi host PostgreSQL hba.conf tidak ditemukan muncul, maka konfigurasi modul salah atau server Anda belum diinisialisasi untuk pertama kalinya. Banyak versi paket untuk sistem Linux perlu diinisialisasi sebelum dapat digunakan, biasanya dengan menjalankan perintah initdb. Jika modul mengetahui cara melakukan ini di sistem Anda, Inisialisasi Basis Data akan ditampilkan tombol yang dapat Anda klik untuk mengatur server untuk pertama kalinya.

Pesan kesalahan Program klien PostgreSQL *psql tidak ditemukan di sistem Anda* menunjukkan bahwa PostgreSQL tidak diinstal sama sekali, atau berada di direktori yang berbeda dengan yang diharapkan Webmin. Pada sistem Linux dan FreeBSD, modul mengasumsikan bahwa Anda telah menginstal paket-paket untuk database yang disertakan dengan distribusi Anda, sedangkan pada sistem operasi lain diasumsikan bahwa instalasi standar dari kode sumber ke /usr/local/pgsql telah selesai. Jika Anda telah menginstalnya dan pesan kesalahan itu masih muncul, Anda perlu membaca bagian *Mengonfigurasi modul Server Database PostgreSQL* untuk detail tentang cara menyesuaikan jalur yang digunakan modul.

Jika Anda menjalankan Linux dan PostgreSQL tidak diinstal, gunakan modul Paket Perangkat Lunak untuk menginstal semua paket yang dimulai dengan postgres dari CD distribusi atau situs web. Seringkali akan ada beberapa, seperti postgresql, postgresql-server dan postgresql-devel. Untuk sistem operasi lain, kunjungi http://www.postgresql.org/ untuk mengunduh distribusi kode sumber, lalu kompilasi dan instal.

Modul PostgreSQL menggunakan perintah SQL untuk melakukan tindakan seperti membuat tabel, menambahkan bidang, dan mengedit catatan. Untuk menjalankan perintah ini, Webmin harus terhubung ke server database, yang dapat dilakukan dengan salah satu dari dua cara. Itu dapat menjalankan perintah psql dengan parameter yang benar dan mengurai outputnya, atau menggunakan perpustakaan Perl DBI untuk terhubung secara langsung.

Metode sebelumnya selalu tersedia, karena perintah psql selalu diinstal saat server database berada. Namun, itu tidak sepenuhnya dapat diandalkan karena jenis data tabel tertentu menghasilkan output yang tidak selalu dapat diuraikan. Untuk alasan ini, Anda harus menginstal modul DBI dan DBD::Pg Perl. Jika salah satu tidak ada, sebuah pesan akan ditampilkan di bagian bawah halaman utama yang meminta Anda untuk menginstal salah satu atau keduanya dengan mengklik tautan. Ini akan membawa Anda ke halaman di modul Perl Modules tempat DBI dan/atau DBD::Pg diunduh dan diinstal untuk Anda.

Membuat database baru

Saat PostgreSQL pertama kali diinstal, database bernama template1 biasanya dibuat. Karena ini digunakan sebagai template untuk database baru, Anda harus membuat tabel sendiri yang berisi tabel untuk aplikasi Anda menyimpan data. Langkah-langkah untuk melakukannya adalah :

  1. Pada halaman utama modul, klik link *Buat database baru* di atas atau di bawah tabel ikon database yang ada.
  2. Masukkan nama unik untuk itu ke dalam Nama database bidang. Ini hanya boleh terdiri dari huruf, angka, dan karakter _.
  3. Saat Jalur file database bidang disetel ke Default , file yang sebenarnya berisi data database akan dibuat di direktori default. Pada sistem Linux, ini biasanya seperti /var/lib/pgsql/data - pada sistem operasi lain, ini mungkin /usr/local/pgsql/var. Untuk menggunakan direktori yang berbeda, sebagai pengguna Unix database berjalan sebagai (biasanya postgres) pertama-tama buat dengan perintah mkdir dan kemudian jalankan initlocation dengan nama direktori sebagai parameter. Kemudian pilih tombol radio bagian untuk Jalur file database bidang dan masukkan direktori di kotak teks yang berdekatan. Sayangnya, kecuali PostgreSQL telah dikompilasi untuk mendukung jalur direktori data absolut, kesalahan akan terjadi saat Anda mengklik tombol Buat tombol. Secara default, fitur ini tidak diaktifkan.
  4. Klik tombol Buat tombol. Basis data akan ditambahkan, dan Anda akan kembali ke halaman utama modul yang harus menyertakan ikon barunya. Jika database yang disebut template1 ada di server Anda, semua tabel atau objek lain yang ada di dalamnya akan disalin ke database yang baru dibuat. Ini dapat berguna jika Anda ingin menambahkan banyak database dengan struktur serupa.

Membuat tabel baru

Sebuah tabel dapat ditambahkan ke database yang ada setiap saat. Setiap tabel memiliki satu atau beberapa bidang, yang masing-masing memiliki jenis, ukuran, dan atribut lainnya. Untuk menambahkan tabel, langkah-langkah yang harus diikuti adalah :

  1. Pada halaman utama, klik ikon database yang ingin Anda tambahkan tabelnya. Ini akan membawa Anda ke halaman pengeditan database yang ditunjukkan pada tampilan layar di bawah ini, yang merupakan ikon untuk setiap tabel yang ada.
  2. Masukkan jumlah bidang yang Anda ingin tabel baru Anda miliki ke dalam Bidang kotak teks di sebelah Buat tabel baru tombol, lalu klik tombol. Ini menampilkan formulir untuk memasukkan detail tabel baru dan bidang awalnya.
  3. Pilih nama untuk tabel dan masukkan ke dalam Nama tabel bidang. Nama harus unik di dalam database, dan hanya boleh menggunakan huruf, angka, dan karakter _.
  4. Setiap baris dari Bidang awal tabel mendefinisikan bidang yang akan ditambahkan ke tabel baru. Jenis kolom yang ditambahkan bergantung pada apa yang Anda masukkan untuk baris di bawah setiap kolom berikut :
    • Nama kolom Nama bidang ini, yang harus unik di dalam tabel dan hanya boleh terdiri dari huruf, angka, dan _. Jika dibiarkan kosong, tidak ada bidang yang akan ditambahkan untuk baris ini.
    • Jenis data Pilihan yang Anda buat dari menu ini menentukan jenis data yang dapat disimpan di bidang ini. Jenis yang paling umum adalah varchar untuk string teks dengan panjang variabel, int4 untuk bilangan bulat dan float4 untuk bilangan pecahan. Lihat Jenis bidang bagian di bawah ini untuk lebih jelasnya.
    • Ketik lebar Bidang ini dapat dibiarkan kosong, dalam hal ini ukuran default untuk jenis yang dipilih akan digunakan. Jika tidak, Anda harus memasukkan angka yang merupakan jumlah karakter (untuk bidang char atau varchar) atau angka (untuk bidang numerik) yang dapat disimpan oleh bidang tersebut. Beberapa jenis seperti blob dan tanggal tidak memerlukan atau mengizinkan jenis untuk ditentukan sama sekali.
    • Opsi kolom Jika Array? dicentang, bidang ini akan menjadi larik yang mampu menyimpan lebih dari satu nilai. Jika Izinkan nol? dicentang, database akan mengizinkan nilai SQL NULL untuk dimasukkan ke dalam bidang ini. Jika Kunci utama? dicentang, bidang ini akan menjadi bagian dari kunci utama untuk tabel. Semua tabel harus memiliki kunci, yang biasanya merupakan bidang pertama dan bertipe int atau varchar. Kapan Unik? dicentang, PostgreSQL akan mencegah lebih dari satu catatan memiliki nilai yang sama untuk bidang ini. Bidang kunci utama juga secara otomatis unik.
  1. Setelah selesai memasukkan kolom, tekan tombol Buat tombol di bagian bawah halaman. Tabel akan ditambahkan ke database, dan Anda akan dikembalikan ke halaman yang mencantumkan tabel yang ada.


Halaman pengeditan basis data

Menambahkan dan mengedit bidang

Bidang baru dapat ditambahkan ke tabel, dan nama bidang yang ada dapat diubah. Tidak ada cara untuk mengubah jenis ukuran bidang, kecuali Anda menghapus dan menambahkannya kembali. Saat bidang dibuat, awalnya akan selalu berisi nilai NULL di baris tabel yang ada.

Untuk menambahkan kolom, langkah-langkah yang harus diikuti adalah :

  1. Pada halaman utama modul, klik ikon database yang berisi tabel. Kemudian klik ikon untuk tabel itu sendiri - ini akan membawa Anda ke halaman yang mencantumkan nama, jenis dan ukuran bidang yang ada, seperti yang ditunjukkan pada tangkapan layar di bawah.
  2. Pilih jenis untuk bidang baru dari menu di sebelah tombol *Tambah bidang jenis*. Saat diklik, browser Anda menampilkan formulir pembuatan bidang untuk memasukkan detail lainnya.
  3. Pilih nama untuk bidang ini yang hanya terdiri dari huruf, angka, dan karakter _ dan masukkan ke dalam Nama bidang kolom tulisan. Tidak boleh ada dua bidang dalam tabel yang sama yang memiliki nama yang sama.
  4. Untuk bidang char atau varchar, masukkan jumlah karakter maksimum yang dapat ditampungnya ke dalam Jenis lebar kolom tulisan. Untuk bidang numerik, Anda harus memasukkan dua angka yang dipisahkan dengan koma, seperti 10,2 . Yang pertama adalah jumlah digit maksimum yang dapat disimpan oleh angka dalam bidang ini, dan yang kedua adalah jumlah digit di sebelah kanan titik desimal. Untuk jenis bidang lainnya, Lebar jenis kotak teks tidak muncul sama sekali.
  5. Jika Anda ingin bidang ini dapat menyimpan beberapa nilai dari jenis yang sama, pilih Ya untuk bidang Array? pilihan.
  6. Klik Buat agar bidang ditambahkan ke tabel, selama tidak ada kesalahan dalam input Anda.


Halaman pengeditan tabel

Setelah bidang dibuat, Anda hanya dapat mengubah namanya, tidak seperti di MySQL di mana jenis atau ukurannya dapat dimodifikasi. Namun, ini berarti tidak ada risiko terhadap data yang dikandungnya. Untuk mengganti nama bidang dalam tabel, langkah-langkah yang harus diikuti adalah :

  1. Pada halaman utama modul, klik ikon database yang berisi tabel, lalu klik ikon tabel. Ini akan membawa Anda ke daftar bidang dalam tabel, contohnya ditunjukkan pada gambar di atas.
  2. Klik pada nama bidang yang ingin Anda ubah.
  3. Pada formulir pengeditan, perbarui Nama kolom kotak teks dengan nama baru. Secara alami ini harus mengikuti aturan penamaan yang sama seperti yang berlaku saat membuat bidang.
  4. Klik tombol Simpan tombol untuk membuat perubahan dalam database.

Menghapus bidang

Tidak seperti MySQL, server database PostgreSQL tidak memiliki perintah SQL bawaan untuk menghapus bidang dari tabel. Namun, dimungkinkan untuk melakukan penghapusan bidang dengan membuat tabel sementara baru yang tidak memiliki bidang, menghapus tabel lama dan mengganti nama menjadi sementara dengan nama aslinya. Ini berfungsi, dan Webmin dapat melakukan semuanya untuk Anda secara otomatis - namun, beberapa informasi seperti indeks dan nilai bidang default akan hilang dalam prosesnya. Data aktual dalam tabel (selain itu di bidang yang dihapus) akan aman.

Jika tabel Anda tidak berisi indeks atau bidang apa pun dengan nilai default, Anda dapat melanjutkan dan menghapus bidang dengan mengikuti langkah-langkah berikut :

  1. Klik ikon database yang berisi tabel di halaman utama modul, lalu di ikon tabel itu sendiri.
  2. Klik pada Lepaskan Bidang tombol pada formulir pengeditan tabel, di bawah daftar bidang yang ada. Ini membawa Anda ke halaman yang mencantumkan semua bidang dalam tabel, yang masing-masing memiliki tombol radio di sebelahnya di bawah Lepaskan Yang Ini .
  3. Pilih bidang tombol radio yang ingin Anda hapus dari tabel.
  4. Centang Pilih kotak untuk mengonfirmasi kotak centang di bagian bawah formulir.
  5. Tekan Lepaskan Bidang tombol untuk menghapus bidang yang dipilih. Setelah dihapus, halaman yang sama akan ditampilkan kembali sehingga Anda dapat menghapus yang lain jika diinginkan.

Jenis bidang

PostgreSQL memiliki sejumlah besar jenis bidang, yang semuanya didukung oleh Webmin. Namun, tidak semuanya berguna untuk database rata-rata. Sumber informasi terbaik adalah dokumentasi resmi di http://www.postgresql.org/docs/7.3/static/datatype.html

PostgreSQL memiliki beberapa tipe untuk menyimpan objek geometris, seperti titik, jalur, kotak dan lingkaran, dan tipe untuk informasi jaringan seperti inet, cidr dan macaddr. Bidang dari semua jenis ini dapat dibuat dan diedit menggunakan modul ini, meskipun tidak didokumentasikan di atas. Namun, tidak ada database lain (seperti Oracle atau MySQL) yang mendukung tipe ini, jadi sebaiknya hindari database tersebut jika Anda ingin program Anda menjadi database-independen.

Melihat dan mengedit isi tabel

Modul PostgreSQL memungkinkan Anda untuk melihat dan mengedit konten tabel apa pun di database apa pun, bahkan yang tidak memiliki kunci utama. Berbeda dengan modul MySQL, modul ini dapat mengidentifikasi baris tertentu untuk diedit menggunakan kolom oid khusus, yang berisi pengenal unik untuk setiap record.

Untuk melihat konten tabel, ikuti langkah berikut :

  1. Di halaman utama, klik ikon untuk database yang berisi tabel, lalu klik ikon untuk tabel itu sendiri.
  2. Pada formulir pengeditan tabel, klik tombol Lihat Data tombol di bagian bawah. Ini akan membawa Anda ke halaman yang berisi tabel dari 20 baris pertama dalam tabel.
  3. Jika tabel berisi lebih banyak baris daripada yang dapat ditampilkan pada satu halaman, awal dan akhir rentang yang terlihat dan jumlah total baris akan ditampilkan di bagian atas. Di sebelahnya ada panah kiri dan kanan untuk pindah ke 20 catatan berikutnya atau sebelumnya. Berbeda dengan modul MySQL, tidak ada cara untuk mencari record atau melompat ke nomor baris tertentu di halaman ini.

Halaman yang sama ini juga dapat digunakan untuk mengedit, menghapus, atau menambahkan catatan. Rekaman yang akan diedit harus dipilih terlebih dahulu menggunakan kotak centang di sebelah kanan setiap baris, atau Pilih semua dan *Balikkan tautan pilihan. Saat Anda mengklik tombol *Edit baris yang dipilih tombol, halaman akan ditampilkan kembali dengan nilai dari semua catatan yang dipilih dalam kotak teks. Buat perubahan apa pun yang Anda suka, dan klik Simpan tombol di bagian bawah halaman untuk memperbarui database. Atau tekan Batal jika Anda ingin berhenti mengedit tanpa menyimpan modifikasi Anda.

Untuk menghapus catatan, pilih catatan tersebut menggunakan kotak centang dan tautan pilihan yang sama, lalu klik tombol Hapus baris yang dipilih tombol. Catatan yang dipilih akan segera dihapus dari database tanpa konfirmasi lebih lanjut.

Untuk menambahkan catatan baru, tekan tombol Tambahkan baris tombol di bawah tabel. Baris tambahan akan muncul berisi kotak teks kosong untuk Anda masukkan detail baru. Mengklik Simpan akan menambahkan catatan baru ke tabel, dan memindahkan tampilan sehingga Anda dapat melihat baris baru. Sebagai alternatif, Anda dapat mengeklik Batal jika Anda berubah pikiran tentang menambahkan catatan.

Menghapus tabel dan database

Modul ini juga berisi tombol untuk menghapus tabel dari database, atau seluruh database dan semua yang ada di dalamnya. Ketika sebuah tabel dihapus, semua record dan field yang ada di dalamnya akan hilang

Untuk menghapusnya, langkah-langkah yang harus diikuti adalah :

  1. Pada halaman utama modul, klik ikon database yang ingin Anda hapus tabelnya, lalu pada ikon tabel itu sendiri.
  2. Klik Lepaskan Tabel tombol di bawah daftar bidang. Ini akan membawa Anda ke halaman konfirmasi yang menanyakan apakah Anda yakin dan memberi tahu Anda berapa banyak catatan yang akan dihapus.
  3. Untuk melanjutkan, klik Lepaskan Tabel tombol lagi. Setelah dihapus, Anda akan kembali ke daftar tabel yang masih ada di database.

Dimungkinkan juga untuk menghapus seluruh database dan semua tabel dan catatan di dalamnya. Basis data apa pun dapat dihapus, tetapi menghapus template1 adalah ide yang buruk karena modul terhubung ke sana saat mengambil daftar basis data lain, dan menganggapnya akan selalu ada. Seperti biasa, kecuali Anda telah membuat cadangan, tidak ada cara untuk membatalkan penghapusan.

Dengan asumsi Anda benar-benar ingin menghapus database, ikuti langkah berikut :

  1. Pada halaman utama, klik ikon database yang ingin Anda hapus.
  2. Tekan Lepaskan Basis Data tombol di bawah daftar tabel. Halaman konfirmasi akan ditampilkan, memberi tahu Anda berapa banyak tabel dan catatan yang akan hilang jika Anda melanjutkan.
  3. Untuk melanjutkan penghapusan, klik Lepaskan Basis Data tombol dan Anda akan kembali ke halaman utama modul setelah selesai.

Dimungkinkan untuk menghapus database template1 jika Anda mengubah Database PostgreSQL Awal bidang konfigurasi modul ke beberapa database lain yang tidak akan dihapus.

Mengeksekusi perintah SQL

Modul PostgreSQL juga menyediakan antarmuka sederhana untuk menjalankan perintah SQL pada database dan menampilkan outputnya. Langkah-langkah menggunakannya adalah :

  1. Pada halaman utama, klik ikon database yang ingin Anda jalankan perintahnya.
  2. Klik pada Jalankan SQL tombol di bawah daftar ikon tabel. Ini akan membawa Anda ke halaman untuk memasukkan perintah SQL, menjalankan file perintah dan memuat data ke dalam database.
  3. Masukkan salah satu perintah SQL ke dalam kotak teks di bagian atas halaman dan tekan tombol Execute tombol. Jika ada kesalahan dalam sintaks SQL Anda atau perintah tidak dapat dijalankan, pesan kesalahan dari PosygreSQL akan ditampilkan. Jika tidak, tabel hasil dari SQL (jika ada) akan ditampilkan. Hanya pernyataan SELECT yang menghasilkan hasil - UPDATE, INSERT, dan perintah lain yang memodifikasi catatan tidak.

Tidak seperti modul MySQL, tidak ada riwayat perintah atau dukungan untuk menjalankan beberapa pernyataan SQL dari sebuah file.

Mencadangkan dan memulihkan basis data

Jika salah satu database Anda berisi informasi penting, itu harus dicadangkan secara teratur jika terjadi kegagalan disk atau kesalahan SQL yang menyebabkan hilangnya data. Ini juga merupakan ide yang baik untuk membuat cadangan sebelum melakukan beberapa operasi yang berpotensi berisiko, seperti menjalankan pernyataan SQL kompleks yang mengubah banyak catatan.

Karena perubahan parameter perintah pg_dump dan pg_restore, modul ini hanya memungkinkan Anda membuat dan memulihkan cadangan saat menggunakan PostgreSQL versi 7.2 dan yang lebih baru. Jika Anda menggunakan rilis lama, tombol yang dijelaskan dalam langkah-langkah di bawah ini tidak akan terlihat.

Untuk menggunakan modul untuk membuat cadangan, langkah-langkah yang harus diikuti adalah :

  1. Pada halaman utama, klik ikon database yang ingin Anda backup.
  2. Klik tombol *Backup * di bawah daftar tabel. Ini akan membawa Anda ke formulir untuk memasukkan tujuan dan opsi pencadangan.
  3. Di Jalur file cadangan , masukkan path file lengkap tempat penulisan cadangan, seperti /tmp/backup.tar . File tidak boleh sudah ada - jika ada, kesalahan akan terjadi saat Anda menekan tombol Cadangan tombol.
  4. Dari menu Format file cadangan, pilih jenis file yang akan dibuat. Opsi yang tersedia adalah :*Teks ​​SQL Biasa *File akan berisi serangkaian perintah SQL yang membuat ulang tabel dalam database dan mengisinya kembali dengan data. Format ini nyaman karena file cadangan dapat diedit secara manual, tetapi Anda tidak dapat menyertakan objek besar (seperti gumpalan) dalam cadangan SQL, atau memulihkannya secara selektif. *Arsip tar *File cadangan akan menjadi file tar Unix standar, yang berisi berbagai file yang menentukan struktur dan konten tabel. Objek besar didukung, dan pemulihan selektif dimungkinkan. *Arsip khusus *File akan berada dalam format cadangan khusus PostgreSQL, yang dikompresi dan mendukung objek besar, pengecualian data, dan pemesanan ulang pada waktu pemulihan.
  5. Untuk membuat cadangan, tekan tombol *Cadangkan *di bagian bawah formulir. Jika semuanya berjalan dengan baik, Anda akan diarahkan ke daftar tabel - jika tidak, halaman yang menunjukkan perintah pencadangan dijalankan dan keluaran kesalahannya akan ditampilkan.

Jika Anda memiliki database yang digunakan untuk tujuan produksi yang penting, database tersebut harus dicadangkan secara teratur, misalnya sekali sehari. Daripada mengikuti petunjuk di atas setiap hari, Anda dapat menggunakan modul Pekerjaan Cron Terjadwal (dibahas dalam bab 10) untuk membuat pekerjaan yang melakukan pencadangan untuk Anda. Untuk mengetahui perintah apa yang harus dijalankan, gunakan instruksi di atas untuk membuat cadangan terlebih dahulu, lalu kunjungi modul Webmin Actions Log (dibahas dalam bab 54) untuk melihat perintah yang digunakan.

Setelah file cadangan dibuat, itu dapat dipulihkan di sistem yang sama atau di server lain yang menjalankan MySQL. Langkah-langkahnya adalah :

  1. Pada halaman utama modul, klik ikon database tempat cadangan harus dipulihkan.
  2. Tekan Pulihkan tombol di bawah daftar tabel untuk membuka formulir untuk memilih file cadangan.
  3. Di Jalur file cadangan bidang, masukkan path lengkap ke file yang berisi data cadangan PostgreSQL seperti /tmp/backup.tar . File ini dapat dalam format apa pun yang tersedia di formulir cadangan.
  4. Biasanya, proses pemulihan akan mencoba membuat ulang tabel sebelum mengembalikan data ke dalamnya. Untuk menghindarinya, ubah Hanya pulihkan data, bukan tabel? bidang ke Ya . Ini hanya akan berfungsi jika semua tabel dalam cadangan sudah ada. Semua data yang saat ini berisi akan digabungkan dengan catatan yang dipulihkan.
  5. Biasanya, proses restore akan gagal jika tabel di backup sudah ada di database. Agar tabel yang ada dihapus sebelum pemulihan, ubah Hapus tabel sebelum memulihkan? bidang ke Ya . Tidak masuk akal untuk menyetel bidang ini dan sebelumnya ke Ya .
  6. Klik tombol Pulihkan untuk memuat ulang data dan tabel dari file cadangan. Pesan kesalahan yang menunjukkan keluaran dari perintah pg_restore akan ditampilkan jika terjadi kesalahan - jika tidak, Anda akan dikembalikan ke daftar tabel dalam database.

Mengelola pengguna PostgreSQL

Seperti yang Anda harapkan, server database PostgreSQL tidak hanya mengizinkan siapa pun untuk terhubung dan mulai memanipulasi data. Sebaliknya, itu memverifikasi klien dengan meminta mereka untuk mengirim nama pengguna dan kata sandi, yang diperiksa terhadap daftar pengguna internalnya sendiri. Daftar pengguna database ini benar-benar terpisah dari daftar pengguna Unix di file /etc/passwd.

Secara default, hanya postgres pengguna yang akan ada, dan dia akan memiliki akses penuh ke semua database dan tabel. Jika Anda menulis aplikasi yang menggunakan database, pengguna baru harus dibuat agar aplikasi tersebut dapat login sebagai. Jika beberapa orang akan mengakses database Anda menggunakan perintah psql atau program klien lainnya, masing-masing harus memiliki login dan kata sandinya sendiri.

Untuk menambahkan pengguna baru, langkah-langkah yang harus diikuti adalah :

  1. Pada halaman utama modul, klik Pengguna PostgreSQL ikon. Ini akan membawa Anda ke daftar pengguna yang ada dan kemampuannya, seperti yang ditunjukkan pada tangkapan layar di bawah.
  2. Klik tautan Buat pengguna baru di atas atau di bawah daftar, yang akan memunculkan formulir pembuatan pengguna.
  3. Masukkan nama unik untuk pengguna, yang hanya terdiri dari huruf, angka, dan karakter _, ke dalam Nama Pengguna bidang.
  4. Untuk menyetel sandi bagi pengguna ini, pilih tombol radio kedua di Sandi dan masukkan kata sandi ke dalam kotak teks di sebelahnya. Jika Tidak ada dipilih, pengguna tidak akan dapat masuk kecuali server telah dikonfigurasi untuk mengizinkan koneksi tanpa kata sandi (seperti yang dijelaskan di bagian *Membatasi akses klien*).
  5. Jika Anda ingin pengguna ini dapat membuat database sendiri, ubah Dapat membuat database? kolom ke Tidak . Hanya pengguna administrasi master (postgres) yang benar-benar perlu dapat melakukan ini.
  6. Untuk memberikan hak kepada pengguna ini untuk mengedit dan membuat pengguna PostgreSQL, ubah Dapatkah membuat pengguna? bidang ke Ya . Sekali lagi, ini biasanya harus dibiarkan sebagai Tidak .
  7. Berlaku sampai bidang mengontrol berapa lama pengguna ini dapat digunakan. Jika Selamanya dipilih, itu tidak akan memiliki tanggal kedaluwarsa - tetapi jika opsi kedua dipilih dan tanggal dalam format YYYY-MM-DD dimasukkan ke dalam bidang teks, akun tidak akan dapat digunakan setelah tanggal tersebut.
  8. Klik tombol Buat untuk menambahkan akun baru ke daftar pengguna PostgreSQL. Orang atau program akan segera dapat masuk sebagai pengguna ini. Seringkali server database diatur secara default untuk memungkinkan setiap pengguna lokal untuk masuk tanpa perlu memberikan kata sandi sama sekali. Untuk mengubahnya, lihat Membatasi akses klien bagian.
  9. Untuk mengonfigurasi tabel dan tampilan mana yang dapat diakses oleh pengguna baru ini, ikuti petunjuk di bagian *Mengedit izin objek*.


Pengguna PostgreSQL yang ada

Setelah pengguna dibuat, pengguna dapat mengedit dengan mengklik namanya di daftar pengguna yang ditunjukkan pada tangkapan layar di atas. Ini akan membawa Anda ke formulir pengeditan yang hampir identik dengan formulir pembuatan pengguna, kecuali bahwa nama pengguna tidak dapat diubah. Setelah Anda selesai mengubah kata sandi, tanggal kedaluwarsa, dan bidang lainnya, tekan tombol Simpan tombol untuk membuat perubahan aktif.

Seorang pengguna juga dapat dihapus dengan mengeklik Hapus tombol pada halaman pengeditannya. Berhati-hatilah untuk tidak menghapus pengguna postgres, karena biasanya digunakan oleh modul Webmin ini untuk masuk ke PostgreSQL. Bahkan, mengedit pengguna ini dapat menyebabkan masalah jika Anda menetapkan tanggal kedaluwarsa atau menghilangkan kemampuannya untuk membuat database atau pengguna lain.

Seperti banyak modul lainnya, modul ini dapat dikonfigurasi untuk membuat, memperbarui, atau menghapus pengguna PostgreSQL secara otomatis ketika pengguna Unix ditambahkan, dimodifikasi, atau dihapus masing-masing. Ini dapat berguna jika Anda mengizinkan beberapa pengguna Unix di sistem Anda untuk mengakses database, dan ingin menjaga agar kata sandi mereka tetap sinkron.

Untuk menyiapkan sinkronisasi, langkah-langkah yang harus diikuti adalah :

  1. Pada halaman utama modul, klik Pengguna PostgreSQL ikon, dan gulir ke bawah ke formulir di bawah daftar akun yang ada.
  2. Jika Anda ingin pengguna PostgreSQL baru dibuat untuk setiap pengguna Unix baru, centang kotak *Tambahkan pengguna PostgreSQL baru saat pengguna Unix ditambahkan*. Pengguna yang dibuat secara otomatis tidak akan memiliki izin objek tertentu.
  3. Jika Anda ingin kata sandi pengguna PostgreSQL diubah saat hal yang sama terjadi pada pengguna Unix yang cocok, centang kotak *Perbarui pengguna PostgreSQL saat pengguna Unix yang cocok dimodifikasi*.
  4. Agar pengguna PostgreSQL dihapus pada saat yang sama dengan pengguna Unix dengan nama yang sama, centang kotak *Hapus pengguna PostgreSQL saat pengguna Unix yang cocok dihapus*.
  5. Tekan tombol Simpan untuk mengaktifkan pengaturan sinkronisasi baru.

Mengelola grup PostgreSQL

PostgreSQL menyimpan daftar grup internalnya sendiri, yang masing-masing dapat berisi nol atau lebih pengguna. Grup paling berguna saat menetapkan izin objek, karena memungkinkan Anda memberikan akses ke tabel atau tampilan ke banyak pengguna sekaligus. Selain itu, mereka tidak melakukan peran dalam kontrol akses atau otentikasi.

Untuk membuat grup, langkah-langkah yang harus diikuti adalah :

  1. Pada halaman utama modul, klik Grup PostgreSQL ikon. Browser Anda akan menampilkan tabel grup yang ada dan anggotanya, jika ada. Saat PostgreSQL pertama kali diinstal, tidak ada grup yang ditentukan.
  2. Klik pada Buat grup baru tautan untuk membuka formulir pembuatan grup.
  3. Masukkan nama yang terdiri dari huruf, angka dan karakter _ ke dalam Nama grup bidang. Tidak ada grup atau pengguna lain yang dapat memiliki nama yang sama.
  4. Keluar dari ID Grup bidang tidak berubah, karena ID dipilih secara otomatis oleh Webmin.
  5. Pilih pengguna yang akan menjadi anggota grup ini dari Anggota daftar. Di sebagian besar browser, Anda dapat ctrl-klik untuk memilih lebih dari satu nama pengguna, atau shift-klik untuk memilih seluruh rentang.
  6. Klik Buat untuk menambahkan grup. Izin objek sekarang dapat diberikan padanya, seperti yang dijelaskan dalam Mengedit izin objek bagian.

Just like a user, a group that you have created can be edited by clicking on its name in the list on the PostgreSQL Groups page, changing the name or membership list on the editing form and hitting Save . Or it can be deleted by clicking the Delete button on the same form.

Restricting client access

Usually, the default PostgreSQL configuration allows any user to connect to the database server from the same system without needing to login, but prevents all remote access. If you want to allow clients to connect from other systems (for example if you are setting up a database server that will be accessed from a separate web server), then PostgreSQL needs to be configured to allow this.

To grant access to another host, follow these instructions :

  1. On the module's main page, click on the Allowed Hosts ikon. You will be taken to a page listing hosts from which connections are allowed, the databases clients can access and the authentication modes used. Typically, only local connections and those from 127.0.0.1 will be allowed initially.
  2. Click on the Create a new allowed host link above or below the list to bring up the host creation form.
  3. In the Host address field, select Single host and enter the IP or hostname of the remote client system into the adjacent field. Alternately, to allow an entire LAN select Network and enter the network address (like 192.168.1.0 ) and netmask (like 255.255.255.0 ) into the fields next to it.
  4. To give the specified host or network access to all databases on your server, leave the Database field set to All databases . Otherwise, make a selection from the menu to limit the client to just that one. If you want to grant a client access to two databases, you will need to add two host entries each with a different choice selected from Database Tidak bisa.
  5. In the Authentication mode field, select Plaintext password . The option No authentication required will also allow users on the client system to connect, but without needing to provide a valid password. Clearly, this is not very secure.
  6. Hit the Create button to add the new allow host entry.

If your system has multiple users, each of whom has a data in a PostgreSQL database that belongs to them, you should not allow them to login to the database server without a password. By default, PostgreSQL allows exactly this, which is not particularly secure! Fortunately, it can be easily fixed. However, there is a risk that you will lock Webmin itself out of the database, as it is often set up by default to login as the user postgres without a password.

Follow the instructions below to re-configure the module to login with a password, and to force local users to do the same thing :

  1. On the module's main page, click on the PostgreSQL Users icon and then on the postgres user to bring up its editing form.
  2. Select the second radio button for the Password field and enter a nice secure password into the adjacent text field. Then click Save .
  3. Go back to the module's main page, and hit the Module Config tautan.
  4. In the Administration password field, select Set to and enter the password you chose into the text field. Then click Save at the bottom of the form.
  5. Click on the Allowed Hosts icon, and then on Local connection in the Host address kolom. Change the *Authentication mode* field to Plaintext password , and click the Save tombol. After your browser returns to the list of allowed hosts, click on 127.0.0.1 and make the same change.
  6. Return to the module's main page. If all went well, you will still be able to see and manage databases, and all users will require a password to connect.

When a client connects to the database server, PostgreSQL checks the host entries on the Allowed Hosts page in order. As soon as it finds one that matches the client address and requested database, the authentication mode for that entry is used. You can use this feature to block certain hosts while allowing all others by creating a host entry with the *Host address *field set to the IP you want to block, and the Authentication mode set to Reject connection . This entry must appear in the list above any broader entry that would allow the same client.

Because new allowed host entries are always added to the end of the list, the page has a feature for moving around. The up and down arrows under the Move column in the list can be clicked on to move an entry up or down one place respectively.

Editing object privileges

Each PostgreSQL object (a table, view, index or sequence) has an owner, which is the user who created it. By default, only the owner can select data from or update records in an object, which is not too useful if your server has multiple users who will all need access to the same tables. Fortunately, it is possible to grant access to database objects to other users or groups, by following the steps below :

  1. On the module's main page, click on the Granted Privileges icon. Assuming you actually have some tables in your databases, this will bring up a page listing all existing objects and their current permissions.
  2. Click on the name of the object that you want to grant access to, which will take you to its privileges editing form.
  3. The Grant privileges to table lists all users and groups to whom access has been granted, followed by a blank row for adding a new one. Most of the time, it will just contain that one empty row though. In the User column, select the name of the user or group to grant privileges to from the menu, or choose Everyone to grant access to all PostgreSQL users. In the Privileges column, check the boxes for the rights that should be granted to the chosen user or group. The available options are their meanings are :*SELECT *When checked, the user will be able to view records in this table or view with an SQL SELECT query. *UPDATE *When chosen, this option gives users the ability to update existing records in the table. *INSERT *This option gives users the right to add new records to the table with an SQL INSERT statement. *DELETE *When checked, the user will be able to delete existing records from the table. *RULE *Allows the user to create of rules on the table or view. A rule is an piece of SQL code that is executed to transform data inserted, updated or deleted in the table. *REFERENCES *Allows the user to create a field that references this table as a foreign key. *TRIGGER *When checked, the user will be able to create triggers for this table. Because the table only displays one empty row at a time, you will need to save and re-edit the object permissions if you want to grant access to more than one user. If several users are to be given the same permissions, it is better to put them in a group and grant access to the group instead. # Hit the Save button at the bottom of the page to make the new permissions active.

Unlike MySQL, there is no way to give a user access to an entire database, or just to a field within a table. All privileges are granted at the table level only.

Kontrol akses modul

As WebminUsers explains, it is possible to create a Webmin user who has access to only a subset of the features of some modules. In the case of the PostgreSQL Database Server module, you can limit a user to being able to manage tables and fields in specific databases, and prevent him from editing users, groups or granted permissions. This can be useful if various databases on your server are owned by different people, and you want to give each of them a Webmin login to manage only those that belong to them.

Once a user has been given access to the module, to limit him to only certain databases the steps to follow are :

  1. In the Webmin Users module, click on PostgreSQL Database Server next to the name of a user or group who has access to the module.
  2. On the access control form, change the Can edit module configuration? kolom ke Tidak . This is necessary to prevent the user changing the programs that the module uses for accessing the database.
  3. In the Databases this user can manage field, choose the Selected pilihan. Then select the databases he should have access to from the list below.
  4. Change the Can create new databases? kolom ke Tidak . There is no reason that a restricted user of this type should be able to add new databases.
  5. Unless you want the user to be able to delete his own databases, change the Can drop databases? kolom ke Tidak . Leaving it set to Yes is harmless though, as he will only be able to delete those that you have granted him access to.
  6. Change the Can stop and start PostgreSQL server? kolom ke Tidak .
  7. Change the Can edit users, groups, hosts and grants? kolom ke Tidak , so that he cannot create a new PostgreSQL user with access to all databases.
  8. Set the Can create backups? kolom ke Tidak , as giving a user the rights to make a backup may allow him to overwrite files on your system.
  9. The Can restore backups? field can be safely set to Yes , as there is no danger in allowing a user to re-load data into his databases from a backup file.
  10. Finally, to make the new access control restrictions active, click Save .

Configuring the PostgreSQL Database Server module

Like most other modules, this one has several options that you can set by clicking on the Module Config link in the top-left corner of its main page. Those fields listed under *Configurable option* relate to its connection to the database and user interface, while those under System configuration define the paths to the PostgresSQL programs and files.

Unless you have installed the database server in a different directory to the default for your operating system, fields in the second section do not generally need to be changed. This can happen if you installed PostgreSQL from the source code instead of using the package supplied with your Linux distribution, or if you have two copies of PostgreSQL installed and are configuring a clone of the module (covered in WebminConfiguration) to manage the second install.


Webmin
  1. Apa Itu Database Server &Untuk Apa Digunakan?

  2. Jabber IM Server

  3. Cara Mengamankan Server PostgreSQL

  1. Database Drop PostgreSQL dengan Contoh

  2. Cara Membuat Database di PostgreSQL

  3. Instalasi Ubuntu 20.04 PostgreSQL

  1. Instalasi Ubuntu 22.04 PostgreSQL

  2. Cara Menginstal PostgreSQL di Ubuntu 20.04

  3. Cara Menginstal PostgreSQL di CentOS 8