9.9 DQLAB BIGGEST SALE! DISKON 98%
Belajar Data Science Bersertifikat, 6 BULAN hanya Rp 100K!

0 Hari 1 Jam 2 Menit 44 Detik

Tutorial Row Level Security Power BI dengan USERPRINCIPALNAME()

Belajar Data Science di Rumah 10-September-2026
https://dqlab.id/files/dqlab/cache/whatsapp-image-2026-06-02-at-145149-2026-06-02-150919_x_Thumbnail800.jpeg

Dalam pengelolaan data perusahaan, tidak semua pengguna membutuhkan akses ke seluruh informasi dalam sebuah dashboard. Manajer wilayah mungkin hanya perlu melihat data cabangnya, sedangkan kepala departemen membutuhkan data departemennya sendiri. Jika semua pengguna dapat melihat seluruh data, risiko kebocoran informasi dan penggunaan data yang tidak sesuai dapat meningkat.

Row Level Security (RLS) di Power BI dapat digunakan untuk mengatasi kebutuhan tersebut. Fitur ini memungkinkan pembuat laporan menentukan baris data mana yang boleh dilihat oleh pengguna tertentu. Salah satu pendekatan yang banyak digunakan adalah Dynamic Row Level Security yaitu keamanan data yang menyesuaikan pengguna yang sedang mengakses laporan.

Dalam implementasinya, fungsi DAX USERPRINCIPALNAME() dapat digunakan untuk mengidentifikasi akun pengguna yang sedang login. Berikut adalah tutorial untuk Row Level Security (RLS) menggunakan USERPRINCIPALNAME(). Simak sampai habis, yuk, sahabat DQLab!

1. Apa itu USERPRINCIPALNAME()?

USERPRINCIPALNAME() adalah fungsi DAX yang mengembalikan User Principal Name atau identitas pengguna yang sedang menjalankan laporan. Dalam banyak lingkungan Power BI, hasil fungsi ini berupa alamat email atau identitas akun Microsoft pengguna. Sebagai contoh:


USERPRINCIPALNAME()


Jika pengguna login menggunakan akun:


[email protected]


fungsi tersebut dapat menghasilkan


[email protected]


Nilai tersebut kemudian dapat dibandingkan dengan kolom email atau username dalam tabel mapping. Contohnya, sebuah tabel UserAccess dapat memiliki struktur:

EmailWilayah
[email protected]Jawa Barat
[email protected]Jawa Tengah
[email protected]

Jawa Timur


Baca Juga: Belajar Power BI dari Nol Tanpa Coding, Apakah Bisa?


2. Siapkan tabel mapping user

Pertama, buat tabel yang berisi daftar pengguna dan hak aksesnya. Misalnya:

EmailWilayah
[email protected]Jawa Barat
[email protected]Jawa Tengah
[email protected]Jawa Timur

Pastikan nilai email atau username sesuai dengan identitas akun yang digunakan untuk login ke Power BI.


3. Import data ke Power BI

Masukkan tabel data utama dan tabel UserAccess ke Power BI Desktop. Setelah data masuk, pastikan kolom yang digunakan sebagai dasar filter memiliki format dan nilai yang konsisten. Misalnya:


Tabel Sales

  • ID

  • Wilayah

  • Produk

  • Penjualan


Tabel UserAccess

  • Email

  • Wilayah


4. Buat relationship antar tabel

Masuk ke Model view, kemudian hubungkan kolom Wilayah pada tabel UserAccess dengan kolom Wilayah pada tabel Sales. Secara konsep:



Relationship ini penting karena filter pada tabel user harus dapat diteruskan ke tabel data utama.


Baca Juga: Alur Cara Kerja Power BI Microsoft Fabric Integration


5. Buat role RLS

Selanjutnya, buka menu:


Modeling → Manage roles


Kemudian pilih Create untuk membuat role baru. Berikan nama, misalnya:


Dynamic RLS


Pada tabel UserAccess, masukkan filter:


[Email] = USERPRINCIPALNAME()


Artinya, Power BI hanya akan menggunakan baris UserAccess yang memiliki email sama dengan pengguna yang sedang login. Sebagai contoh, jika pengguna login sebagai:


[email protected]


maka Power BI akan mencari baris:


[email protected] | Jawa Barat


Filter tersebut kemudian diteruskan melalui relationship sehingga tabel Sales hanya menampilkan data Jawa Barat.


6. Test View as Role

Setelah role dibuat, jangan langsung menganggap RLS sudah berjalan dengan benar. Gunakan fitur View as pada Power BI Desktop untuk melakukan pengujian. Masuk ke Modeling → View as. Pilih role Dynamic RLS.


Pada beberapa skenario, pengujian dapat dilakukan menggunakan opsi untuk memasukkan user tertentu sehingga kita dapat melihat bagaimana laporan akan tampil bagi akun terebut. Jika konfigurasi benar, data yang muncul seharusnya sudah sesuai dengan hak akses user.


Contoh:

Misalnya terdapat tiga pengguna:

UserWilayah
[email protected]Jawa Barat
[email protected]Jawa Tengah
[email protected]Jawa Timur

Kemudian dibuat filter:

[Email] = USERPRINCIPALNAME()


Ketika [email protected] membuka laporan, Power BI membaca identitas user tersebut melalui USERPRINCIPALNAME(). Power BI kemudian mencari email tersebut di tabel UserAccess:


[email protected] → Jawa Barat

Karena user tersebut memiliki hak akses Jawa Barat, data pada tabel Sales kemudian difilter menjadi data Jawa Barat. Hal yang sama terjadi pada pengguna lain tanpa perlu membuat role terpisah.


Row Level Security (RLS) di Power BI dengan USERPRINCIPALNAME() merupakan salah satu cara untuk membuat pembatasan data secara dinamis berdasarkan pengguna. Konsep dasarnya adalah mencocokkan identitas user yang sedang login dengan tabel mapping yang berisi informasi hak akses. Implementasinya dapat dilakukan dengan membuat tabel UserAccess, kemudian menghubungkannya dengan tabel data utama, membuat role RLS, lalu menggunakan formula:


[Email] = USERPRINCIPALNAME()


Setelah itu, lakukan pengujian menggunakan View as Role sebelum laporan dipublish ke Power BI Service. Pendekatan ini sangat berguna ketika satu dashboard digunakan oleh banyak pengguna tetapi masing-masing pengguna hanya boleh melihat data tertentu. Melalui desain model data dan relasi yang tepat, Dynamic RLS membuat pengelolaan keamanan data Power BI menjadi lebih mudah dipelihara.

FAQ

  1. Apa fungsi USERPRINCIPALNAME() di Power BI?

USERPRINCIPALNAME() digunakan untuk mendapatkan identitas pengguna yang sedang mengakses laporan. Fungsi ini dapat digunakan dalam Dynamic RLS untuk mencocokkan user dengan aturan akses pada tabel mapping.


  1. Apakah Dynamic RLS harus menggunakan tabel mapping?

Tidak selalu, tetapi tabel mapping sangat disarankan untuk skenario dengan banyak pengguna atau aturan akses yang kompleks. Dengan tabel tersebut, administrator dapat mengelola user dan hak akses tanpa mengubah formula RLS.


  1. Apakah RLS tetap berlaku setelah laporan dipublish?

Ya. RLS dapat diterapkan pada semantic model di Power BI Service. Namun, pengguna perlu diberikan akses dan ditempatkan pada role RLS yang sesuai agar pembatasan data dapat diterapkan.


Ingin menguasai Business Intelligence dan Power BI dari nol hingga siap digunakan di dunia kerja? Melalui Bootcamp Business Intelligence Analyst with Power BI bersama DQLab, kamu akan belajar secara end-to-end mulai dari data preparation, pembuatan dashboard interaktif, hingga menghasilkan business insight yang bernilai. Pembelajaran dikemas dengan studi kasus nyata, metode storytelling, serta bimbingan mentor untuk membantu membangun portofolio data yang relevan dengan kebutuhan industri.


Selain materi yang terstruktur dan ramah pemula, peserta juga mendapatkan akses rekaman dan materi selamanya, fitur pemantauan progres belajar, kesempatan memperluas jaringan dengan praktisi industri, serta sertifikat kelulusan. Tingkatkan kemampuan analisis data dan persiapkan diri untuk berkarier di bidang Business Intelligence. Yuk, daftar sekarang!


Penulis: Reyvan Maulid

Row Level Security (RLS) di Power BI membantu membatasi data yang dapat dilihat setiap pengguna. Dengan USERPRINCIPALNAME(), filter dapat dibuat secara dinamis sehingga pengguna otomatis hanya melihat data sesuai wilayah, cabang, atau departemennya. Artikel ini membahas cara membuat Dynamic RLS, menghubungkan tabel user, melakukan testing, hingga menerapkannya di Power BI Service.

Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Daftar Gratis & Mulai Belajar

Mulai perjalanan karier datamu bersama DQLab

Daftar dengan Google

Sudah punya akun? Kamu bisa Sign in disini