Digital Transformation

Row-Level Security (RLS)

Vito Atmo
Vito Atmo·21 Juni 2026·0 kali dibaca·2 min baca

TL;DR: Row-Level Security (RLS) adalah aturan di level database yang menentukan baris mana yang boleh diakses tiap pengguna. Dengan RLS, keamanan data tidak hanya bergantung pada kode aplikasi, tetapi ditegakkan langsung oleh database.

Apa itu Row-Level Security?

Row-Level Security adalah mekanisme yang membatasi akses pengguna ke baris tertentu dalam tabel berdasarkan kebijakan, misalnya "pengguna hanya bisa membaca baris dengan user_id miliknya sendiri". Analoginya seperti loker bersama yang hanya terbuka dengan kunci milik tiap orang, meski semua loker ada di lemari yang sama.

Saat membangun fitur akun dan koleksi pengguna di proyek berbasis Supabase, RLS jadi lapisan pertahanan utama: walau ada celah di kode frontend, database tetap menolak akses ke data milik orang lain.

Cara Kerja Singkat

  • Aktifkan RLS pada tabel.
  • Tulis policy yang mendefinisikan kondisi akses (SELECT, INSERT, UPDATE, DELETE).
  • Database mengevaluasi policy tiap query, mencocokkan identitas pengguna.

RLS sering dipadukan dengan token identitas seperti JWT dan autentikasi via API. Dokumentasi penerapannya tersedia di panduan PostgreSQL tentang row security.

Kenapa Penting?

Untuk produk SaaS multi-pengguna, kebocoran data antar-pengguna adalah risiko serius. RLS memindahkan penegakan aturan ke lapisan paling dekat dengan data, sehingga lebih sulit ditembus dibanding hanya mengandalkan logika aplikasi.

Pertanyaan Umum

Apakah RLS menggantikan validasi di aplikasi?

Tidak. RLS adalah lapisan tambahan, bukan pengganti. Validasi aplikasi tetap penting untuk pengalaman pengguna dan pengecekan dini.

Apakah RLS memperlambat query?

Ada sedikit overhead karena policy dievaluasi tiap query, tetapi dengan index yang tepat dampaknya umumnya kecil dan sepadan dengan keamanannya.

Bagikan