Power BI Roller İzinler Row Level Security
Power BI Roller ve İ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.
- 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.
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.
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.
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.
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.
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.
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.
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.
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.
2) Power BI Desktop ‘ da Oluşturulan Rollerin (Manage Roles) Görüntülenmesi (View as Roles)
- 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.
3. Açılan ekranda birden fazla rolü seçme olanağı da bulunmaktadır.
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.
5. Aşağıdaki ekran görüntüsünde ise Satış Temsilcisi Okan BOZOK’ a ait satış verileri rapora yansımıştır.
3) Oluşturulan Rollerin (Manage Roles), Power BI Web Güvenlik Ekranından Kullanıcı Atamalarının Yapılması (Security)
- Ö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.
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.
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.
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.
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.
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…
Power bi dashboard yetkilendirmeye dayalı olarak bir websitesine nasıl gömebilirim.Yada power query disarida oluşturup bunu power bi uzerinde calistirip dashboard iframe olarak nasıl alabilirim.Iyi calismalar
Merhaba Mehmet Bey,
Power BI Desktop’ ta eğer yetkileri tanımladıysanız bu yetkileri ancak Power BI Web ekranında atama yaparak tanımlayabilir ( Link’ ten inceleyebilirsiniz.) ve orada yetki kısıtı koyabilirsiniz. Ama normal bir web sitesinde Power BI raporunu “gömdüğünüzde” orada doğal olarak bir yetkilendirme yapamazsınız. (Bir kısıt parametresi olmadığı için. Power BI yetki kısıtlamasını kişilerin hesaplarına göre yapmaktadır.) Sorunuzu umarım doğru anlamışımdır. Eğer yanlış bilgilendirme yaptıysam daha anlaşılır olması için ekran görüntülü mail atmanızı rica edeceğim.
Power Query ile ilgili sorunuza gelince daha önce böyle bir örneği kapsayan proje oluşturmadım. Çünkü gerek duymadım nedenine gelince; Power BI – Query Editor (Edit Queries) ekranı Power Query ekranında yapabildiğiniz tüm işlemleri yapabildiğiniz Power BI ekranıdır. Excel’ den çekmiş olduğunuz veriyi burada aynı işlemlere tabii tutabilirsiniz.
Power BI Desktop‘ ta hazırlamış olduğunuz dashboard’ ları başka bir web sitesinde yayımlamak için Power BI Web ekranının üst bölümünde bulunan Dosya menüsünden Web’ te Yayımla‘ yı seçtiğinizde size kaynak kod üretecektir. Power BI Raporlarının SharePoint ‘e Eklenmesi (Embed in SharePoint Online) başlıklı yazımda buna benzer bir örneği bulabilirsiniz. Bunu herhangi bir web sitenizde kullanabilirsiniz.
Umarım yardımcı olabilmişimdir. Takipte kalmanız dileğiyle.