Power BI ‘da Roller ve İzinler (Row Level Security-Manage Roles)

Power BI Roller İzinler (Row Level Security-RLS)

 

1) Power BI Desktop’ da Rollerin Oluşturulması (Manage Roles)

Genellikle  Power BI ‘ da hazırladığımız raporlardaki verilerin tüm kullanıcılar tarafından görüntülenmesi uygun olmayabilir. (Örn: Bir satış temsilcisinin diğer satış temsilcilerinin satışlarını ve müşterilerini görmemesi ya da bir bölge müdürünün kendi satış ekibi haricindeki satış temsilcilerini görmemesi gibi.)

Yetkilendirmeler şirketlerin ve kurumların hiyerarşik yapısı bakımından çok önemlidir.

Bu gibi durumlarda Power BI bizlere kullanıcılar için farklı farklı yetki rolleri (Manage Roles) oluşturma/yönetme imkânı sunmaktadır. Buna genel olarak Power BI ‘ da satır bazında güvenlik (Row Level Security) ismi verilmiştir.

Yetki rollerinin (Manage Roles) nasıl oluşturulduğunu ve oluşturulan yetki rollerine kullanıcıların nasıl atandığını aşağıdaki senaryo üzerinden anlatmaya çalışacağım.

  1. Elimizde bir şirketin Satış Temsilcileri – Ürün – Tarihsel ve Bölgesel bazda satış verileri bulunmaktadır. Bu verilerin görüntülenmesine kullanıcı bazında bazı kısıtlar getirmek istiyoruz ve her satış temsilcisinin kendi satış verilerini görüntülemesini amaçlıyoruz.

 

Power BI Roller İzinler Row Level Security-RLS

Satış Temsilcilerine Ait Ürün – Tarihsel ve Bölgesel Bazda Satış Verileri

 

 

2. Power BI Desktop (Masaüstü) uygulamasının üst menüsünde bulunan Modelling sekmesinden Manage Roles bölümüne tıklıyoruz.

 

Power BI Roller İzinler Row Level Security-RLS

Power BI Desktop – Manage Roles

 

 

3. Karşımıza aşağıdaki gibi bir ekran çıkacaktır. Burada daha önce oluşturulmuş roller var ise listelenir ve bunlar bu ekrandan düzenlenebilir. Biz yeni bir rol oluşturacağımız için Create butonuna tıklıyoruz.

 

Power BI Roller İzinler Row Level Security-RLS

Power BI Desktop – Create Role

 

 

4. Daha sonra oluşturacağımız rol için bir isim veriyoruz. Buradaki örnekte ben sadece Marmara Bölgesi satışlarını gösterecek bir rol oluşturacağım için böyle isimlendirme yaptım.

Siz de bu bölüm için kendinizce bir isimlendirme deseni uygulayabilirsiniz. Burada oluşturacağız rollere kullanıcı atama işlemini Power BI Web ekranında yapacağımız için bir karışıklık olmaması adına isimlendirmelerin birbirine benzer şekilde yapılmaması ve anlaşılır olması önemlidir.

Role bir isim atadıktan sonra sağ tarafında üzerinde çalıştığımız pbix dosyasının içerisinde bulunan veri kümeleri (Fields)/Tables sıralanır.

 

Power BI Roller İzinler Row Level Security-RLS

Rol Oluşturma ve Tabloların Görüntülenmesi

 

 

5. Amacımız satış verilerini filtrelemek olduğu için 1-ŞİRKET SATIŞLARI tablosunun yanında bulunan  kısmına tıklıyoruz. Daha sonra Add filter alanı üzerine geldiğimizde 1-ŞİRKET SATIŞLARI tablosunda bulunan tüm alanlar (Fields) listelenecektir.

Burada yetki durumuna göre filtre uygulanacak alan/alanlar seçilir. Örneğimizde Marmara Bölgesi Satışlarını göstereceğimiz için Marmara Bölgesinin bulunduğu Bölgeler alanını seçiyoruz.

Burada birçoğunuz bir bug ile karşılaşabilirsiniz. Tablonun yanında bulunan tıkladıktan sonra ekrandan yetkilendirmelerle ilgili tüm menülerin kaybolduğunu göreceksiniz.

Ancak herhangi bir yere tıkladığınızda Add filter ve diğer menülerin tekrar görüntülenmesini sağlayabilirsiniz.

 

Power BI Roller İzinler Row Level Security-RLS

Power BI Desktop – Manage Roles – Add Filter

 

 

6. Filtre uygulayacağımız alanı seçtikten sonra Table filter DAX expression bölümünde bu alan görüntülenecektir. Daha sonra Value bölümüne Marmara Bölgesi yazıyoruz.

Burada veri kümesi içerisinde yer alan halini aynı şekilde yazmamız çok önemlidir. Şöyle ki; veri kümenizde “Dogu Anadolu Bölgesi” yazmasına karşın siz bu bölüme “Doğu Anadolu Bölgesi” yazarsanız yetkilendirme için o filtrelemenin yapılmadığını, dolayısıyla istenilen sınırlandırmanın yapılmadığını ve eşleşen veri olmadığı için boş geldiğini göreceksiniz.

 

Power BI Masaüstü Table Filter Data Expression - Power BI Roller İzinler Row Level Security-RLS

Table Filter Data Expression

 

 

7. [Bölgeler] = “Marmara Bölgesi” şeklinde yazdıktan sonra Save butonu ile yaptığımız işlemi kaydediyoruz. Şimdi ise aynı işlemleri bir Satış Temsilcisi rolü oluşturmak için yapalım.

 

Table Filter Data Expression-Save -Power BI Roller İzinler Row Level Security-RLS

Table Filter Data Expression-Save

 

 

8. OKAN BOZOK satış temsilcisine ait satışları görüntülemek için ŞİRKET SATIŞLARI tablosunda bulunan [Satış Temsilcisi] alanına “OKAN BOZOK” yazıyoruz.

Burada ek bilgi olarak şunu söyleyebilirim. Mesela OKAN BOZOK’ un, AYŞE ZEYNEP NEHİR satış temsilcisinin satışlarını da görmesini istiyorsak Add filter bölümünden tekrar [Satış Temsilcisi] alanını seçip “AYŞE ZEYNEP NEHİR” ekleyebiliriz.

 Fakat otomatik olarak kod bölümüne [Satış Temsilcisi] =”OKAN BOZOK” && [Satış Temsilcisi] =”AYŞE ZEYNEP NEHİR”  şeklinde gelecektir. Buradaki && ifadesi AND olduğu için ve her ikisinin bulunduğu bir satışın mümkün olmadığı için filtreleme boş   görüntülenecektir. Bu sebepten && ifadesi yerine || (OR) ifadesi yazılarak her iki satış temsilcisinin de görüntülenmesini sağlayabiliriz.

Böylece aşağıdaki gibi bir DAX kodu elde ederiz.

[Satış Temsilcisi] =”OKAN BOZOK” || [Satış Temsilcisi] =”AYŞE ZEYNEP NEHİR”

 Bu bilgiyi verdikten sonra örneğimize kaldığımız yerden devam etmek istiyorum.

 

Power BI Birden Fazla Filter Ekleme (AND -OR Kullanımı) - Power BI Roller İzinler Row Level Security-RLS

Birden Fazla Filter Ekleme (AND -OR Kullanımı)

 

Manage Roles - Tables - Table Filter DAX Expression - Power BI Roller İzinler Row Level Security-RLS

Roles – Tables – Table Filter DAX Expression

 

Manage Roles-Table Filter DAX Expression - Save - Power BI Roller İzinler Row Level Security-RLS

Table Filter DAX Expression – Save

 

 

9. Eğer bir kullanıcının belirli bir veri kümesine erişimini tamamen kısıtlamak istiyor isek, aşağıdaki örnekte olduğu gibi ilgili tabloya tıklayıp (2-SIPARISLER) Table filter DAX expression bölümüne false yazmamız yeterlidir.

 

Table Filter DAX Expression-False -Power BI Roller İzinler Row Level Security-RLS

Herhangi Bir Rolün Tablodaki Verileri Görmemesini Sağlamak (False)

 

 

2) Power BI Desktop ‘ da Oluşturulan Rollerin (Manage Roles) Görüntülenmesi (View as Roles)

  1. Power BI ‘ da oluşturulan rolleri görüntüleme/test etme işlemi hem Power BI Desktop hem de Power BI Web ekranlarından yapılabilmektedir. Öncelikli olarak Power BI Desktop ekranında nasıl yapıldığını göstermek istiyorum.

2. Power BI Desktop ekranında Manage Roles bölümünden oluşturduğumuz rolleri test etmek amacıyla View as Roles özelliği bulunmaktadır.

Modelling sekmesinden View as Roles bölümüne tıkladığımızda daha önce oluşturduğumuz roller listelenir. Test etmek istediğimiz rolü seçip OK butonuna tıklıyoruz.

 

Power BI Masaüstü - View Roles

Power BI Desktop – View Roles

 

 

3. Açılan ekranda birden fazla rolü seçme olanağı da bulunmaktadır.

Power BI Views as Roles - Rolleri Test Etme -Power BI Roller İzinler Row Level Security-RLS

Power BI Views as Roles – Rolleri Test Etme

 

 

4.  Seçilen role uygulanan filtreye göre raporda bulunan tüm görseller değişim gösterir ve üst bölümde hangi rolün görüntülendiğine dair bir uyarı yazısı bulunur.

Gördüğünüz gibi örneğimizde oluşturduğumuz sadece Marmara Bölgesi satışlarına ait veriler aşağıdaki gibi rapora yansımıştır.

 

Power BI Visualizations-Power BI Roller İzinler Row Level Security-RLS

Seçilen Role Göre Görseller Filtrelenir

 

 

5.  Aşağıdaki ekran görüntüsünde ise Satış Temsilcisi Okan BOZOK’ a ait satış verileri rapora yansımıştır.

 

Power BI Roller İzinler Row Level Security-RLS

Seçilen Role Göre Görseller Filtrelenir

 

 

3) Oluşturulan Rollerin (Manage Roles), Power BI Web Güvenlik Ekranından Kullanıcı Atamalarının Yapılması (Security)

  1. Öncelikle hatırlatmakta fayda var; Power BI Desktop-Manage Roles ekranında oluşturduğumuz rollerin Web ekranında görüntülenebilmesi için Publish (Yayınla) edilmesi gereklidir. Aksi takdirde aşağıdaki gibi bir ekranla karşılaşırsınız.
Power BI Web Ekranında Rollerin Görüntülenmemesi -Power BI Roller İzinler Row Level Security-RLS

Power BI Desktop Ekranında Oluşturulan Rollerin Power BI Web Ekranında Görünmemesi

 

 

2. Power BI Desktop ekranında Çalışma Alanına (My workspace) yayınlamış olduğumuz pbix dosyası (Yetkiler_Icın_Ornek) Veri Kümeleri ve Raporlar bölümünde yer alır. İlgili Veri Kümesinin yanında bölümüne tıklanıp açılan menüden Güvenlik (Security) seçilir.

 

Power BI Web Security Screen - Power BI Roller İzinler Row Level Security-RLS

Veri Kümeleri – … – Güvenlik (Security)

 

 

3. Açılan ekranın sol tarafında oluşturduğumuz roller yer alır. Bu rollere hangi kullanıcıları atayacaksak sağ tarafta bulunan kutucuğa Microsoft kullanıcı hesabı yazılarak önce Ekle butonuna ardından Kaydet butonuna basılır.

UYARI : Tüm rollere kullanıcıları atadınız ve yetkilendirme işlemini tamamladınız varsayalım.

Eğer pbix dosyasının ismini değiştirip tekrar yayınlarsanız Web ekranı bunun doğal olarak yeni bir rapor gibi göreceği için Güvenlik bölümünden tüm rollere kullanıcı atama işleminin tekrar yapmanız gerekir.

Bu yüzden bu isim değişikliği işlemlerini Web ekranından yapılması daha uygun olacaktır.

 

Power BI Web Güvenlik Ekranında Kullanıcıların Rollere Atanması -Power BI Roller İzinler Row Level Security-RLS

Power BI Web Güvenlik Ekranında Kullanıcıların Rollere Atanması

 

 

4. Tanımladığımız rollere kullanıcı atama işlemini gerçekleştirmiş olduk. Daha önce bahsetmiş olduğum gibi Power BI Web ekranından da oluşturulan rollerin görüntüleme/test işlemi yapılabilir.

Bunun için ilgili Veri Kümesinin yanında bulunan bölümüne tıklanıp açılan menüden Güvenlik (Security) seçilir. Sol taraftaki rollerden test edeceğimiz rolün yanında bulunan bölüme tıklanır.

 

Power BI Roller İzinler Row Level Security-RLS

Power Web Güvenlik Ekranından Rollerin Görüntülemesi / Test Edilmesi

 

Power Web Güvenlik Ekranından Rollerin Görüntülemesi / Test Edilmesi

Power Web Güvenlik Ekranından Rollerin Görüntülemesi / Test Edilmesi

 

 

YORUM: Satır seviyesinde yetkilendirmenin (Row Level Security) bazı durumlarda yetersiz kaldığını söyleyebilirim. Bazen bir pbix dosyanın içerisinde oluşturduğumuz sayfalarda da (Page Level Security) yetkilendirmeler yapabilmeliyiz.

Ama şu an için Power BI Masaüstü ‘nün böyle bir özelliği bulunmamaktadır. İlerleyen dönemde geliştirilmesini umut ediyorum.

Siz de benim gibi Power BI geliştiricilerinin buna öncelik vermesini istiyorsanız linke tıklayarak, Page Level Security için Power BI resmi internet sitesinden oyunuzu kullanabilirsiniz.

 

Power BI Roller İzinler Row Level Security-RLS

Page Level Security Geliştirmesi İçin Microsoft ‘ un Oylama Ekranı

 

 

Umarım sizin için faydalı bir yazı olmuştur. Görüşlerinizi, önerilerinizi ve sorularınızı yorum bölümüne yazabilirsiniz. Vakit buldukça cevaplamaya çalışacağım.

Görüşmek dileğiyle herkese iyi çalışmalar…

 

Yorumlar

Bir Yorum Yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.