WHAT'S NEW?
Loading...

Cara Install PostgreSQL di Debian

Cara Install PostgreSQL di Debian


PostgreSQL merupakan salah satu RDMS (Relational Database Management System) populer dari banyak jenis RDMS yg tersedia. Saya sendiri telah menggunakannya sejak lama dan saya sangat suka dengan beragam fitur yg tersedia. Mulai dari sini saya akan membuat seri artikel baru utk artikel belajar PostgreSQL, namun sebelum itu kita perlu utk menginstall ke dalam OS dan juga saya akan menyertakan sedikit dasar cara menggunakannya, saya akan menggunakan Debian Linux versi 9 dan tentunya cara installasi mungkin akan sama utk jenis OS turunan debian.

Langkah pertama silakan update package terlebih dahulu dan kemudian install 2 package yg dibutuhkan:
$ sudo apt-get update
$ sudo apt-get install postgresql postgresql-contrib
Setelah proses installasi selesai, utk mengakses ke shell PostgreSQL bisa dilakukan dengan 2 cara, langkah pertama sbb:
$ sudo -i -u postgres
$ psql
postgres=# \q <== \q utk keluar dari shell
Kemudian cara kedua adalah yg paling sering saya gunakan:
$ sudo -u postgres psql
postgres=# \q <== \q utk keluar dari shell
Sampai disini kita tahu cara mengakses shell milik PostgreSQL. Perlu utk diketahui, PostgreSQL tidak membedakan antara nama pengguna maupun grup dan lebih ke istilah spesifik yaitu "role" yg berguna utk mengatur autentikasi dan autorisasi. Dan juga PostgreSQL tidak memiliki user/role root, default user/role nya adalah postgres.

Jika kita ingin membuat akses shell baru utk PostgreSQL, kita perlu terlebih dahulu membuat sebuah role. Jika kita langsung mencoba mengakses shell misalnya:
$ sudo -u john psql
psql: FATAL: role "john" does not exist
Maka akan muncul error seperti contoh diatas, oleh karena itu kita perlu membuat sebuah role. Tapi sebelum itu kita harus masuk ke dalam shell dulu, ulangi cara diatas utk masuk ke shell, lalu ikuti perintah dibawah ini:
postgres=# \du <== \du utk melihat daftar roles
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

postgres=# CREATE ROLE test_role1;
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-------------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
test_role1 | Cannot login                                        | {}
Role baru sudah berhasil dibuat tetapi tanpa ada hak akses utk login. Utk detail mengenai perintah CREATE ROLE bisa dilihat dengan perintah berikut:
postgres=# \h CREATE ROLE;
Akan tetapi ada cara yg lebih interaktif yaitu menggunakan shell user, berikut ini contohnya:
$ sudo -u postgres createuser --interactive
Enter name of role to add: test_role2
Shall the new role be a superuser? (y/n) y
Kemudian jika kita lihat kembali role yg ada akan seperti contoh berikut:
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-------------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
test_role1 | Cannot login                          | {}
test_role2 | Superuser, Create role, Create DB             | {}
Sampai disini kita sudah berhasil membuat role, masih ada langkah berikutnya sebelum kita bisa menggunakan role yg baru. Jika kita mencoba langsung mengakses shell dengan role baru maka akan terjadi error meskipun role sudah kita buat.
$ sudo -i -u test_role2 psql
sudo: unknown user: test_role2
sudo: unable to initialize policy plugin
Hal ini dikarenakan autentikasi yg digunakan PostgreSQL adalah berdasarkan linux user, maka dari itu kita perlu membuat sebuah linux user baru dengan nama role yg sama:
$ sudo adduser test_role2 <== (ikuti perintah output nya)
Jika kita sudah selesai menambahkan user baru, kita juga masih belum bisa mengakses shell, jika kita coba maka akan tetap terjadi error:
$ sudo -i -u test_role2 psql
psql: FATAL: database "test_role2" does not exist
Karena secara default role yg baru kita buat sebelumnya tidak memiliki database dan ketika masuk ke shell harusnya langsung masuk ke default database milik role, oleh karena itu kita perlu lakukan langkah terakhir yaitu membuat database default utk role:
$ sudo -u postgres createdb test_role2
$ sudo -i -u test_role2 psql
Dengan begini kita sudah bisa masuk ke dalam shell dengan role baru. Memang cukup sulit tapi jika sudah terbiasa maka akan mudah. Dan contoh diatas hanyalah sekedar dasar penggunaannya, masih banyak lagi cara ataupun opsi terkait proses pembuatan role yg bisa langsung dilihat pada web official PostgreSQL.

Sedikit tambahan utk penggunaan shell, berikut ini beberapa perintah dasar saat menggunakan shell:

Masuk ke database tertentu

\c database_name;

Keluar dari shell

\q

Melihat semua database

\l

Melihat semua schema

\dn

Melihat semua store procedure dan fungsi

\df

Melihat semua tabel

\dt

Menampilkan isi sebuah store procedure ataupun fungsi

\df+ function_name

Menampilkan hasil query dalam pretty-format

\x

Menampilkan semua user

\du

Itulah dasar penggunaan dan cara install PostgreSQL server dalam OS linux. Jika ada yg ingin ditanyakan silahkan isi kolom komentar dibawah dan berikan koreksi juga jika ada yg salah.

0 comments:

Post a Comment