Pada pertemuan ini, kita akan membahas cara mengelola user, peran (roles), dan hak akses dalam PostgreSQL. Ini adalah salah satu tugas utama seorang DBA untuk memastikan keamanan dan pengelolaan akses ke database.
1️⃣ Konsep Role & User dalam PostgreSQL
PostgreSQL menggunakan roles (peran) untuk mengelola user dan hak akses.
🔹 Role bisa bertindak sebagai user atau grup
🔹 Hak akses ditentukan berdasarkan role yang diberikan
🔹 PostgreSQL memiliki user default postgres dengan akses superuser
2️⃣ Membuat dan Mengelola User di PostgreSQL
Untuk mengelola user, gunakan perintah SQL di dalam psql atau pgAdmin.
➤ Membuat User Baru
CREATE ROLE nama_user WITH LOGIN PASSWORD 'password123';
Contoh:
CREATE ROLE dba_user WITH LOGIN PASSWORD 'securepass';
WITH LOGINberarti role ini bisa digunakan untuk login.
➤ Melihat Daftar User yang Ada
\du
Ini akan menampilkan daftar role/user yang ada di sistem.
➤ Mengubah Hak Akses User
Misalnya, memberikan hak untuk membuat database:
ALTER ROLE dba_user CREATEDB;
Memberikan hak superuser:
ALTER ROLE dba_user SUPERUSER;
Menghapus hak superuser:
ALTER ROLE dba_user NOSUPERUSER;
➤ Menghapus User
Jika user tidak lagi digunakan, bisa dihapus dengan:
DROP ROLE nama_user;
Contoh:
DROP ROLE dba_user;
3️⃣ Manajemen Hak Akses (GRANT & REVOKE)
Setelah membuat user, kita bisa mengatur aksesnya ke database dan tabel.
➤ Memberikan Akses ke Database
GRANT CONNECT ON DATABASE nama_database TO nama_user;
Contoh:
GRANT CONNECT ON DATABASE belajar_dba TO dba_user;
➤ Memberikan Akses ke Tabel
Misalnya, memberi akses baca dan tulis ke tabel tertentu:
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE nama_tabel TO nama_user;
Contoh:
GRANT SELECT, INSERT ON TABLE transaksi TO dba_user;
➤ Menghapus Akses (REVOKE)
Jika ingin mencabut hak akses:
REVOKE ALL ON TABLE transaksi FROM dba_user;
4️⃣ Tugas Praktik
1️⃣ Buat user baru dengan nama app_user dan password mypassword.
2️⃣ Beri hak akses kepada app_user untuk mengakses database belajar_dba.
3️⃣ Buat tabel sederhana bernama pegawai dengan kolom id dan nama.
4️⃣ Beri hak akses SELECT dan INSERT ke app_user untuk tabel pegawai.
5️⃣ Coba login sebagai app_user dan uji hak aksesnya.
🎯 Kesimpulan
- Roles di PostgreSQL bisa digunakan sebagai user atau grup.
- GRANT dan REVOKE digunakan untuk mengatur hak akses ke database dan tabel.
- DBA bertanggung jawab memastikan user hanya memiliki akses yang diperlukan.
