Merhabalar,
Power BI’da satır bazlı güvenlik (Row-Level Security — RLS) sıklıkla kullanılsa da, bazı durumlarda sütun bazlı güvenlik (Column-Level Security) ihtiyacı ortaya çıkabiliyor. Bu yazıda, Power BI’ın yerel olarak desteklemediği sütun bazlı güvenliği sağlamak için uygulanabilecek en etkili yöntemlerden bahsedeceğim.
Sütun Bazlı Güvenlik Nedir?
Sütun bazlı güvenlik, belirli kullanıcıların belirli sütunlara erişimlerini kısıtlamak anlamına gelir. Örneğin, bir şirketin satış bilgilerini içeren bir raporda, tüm kullanıcıların “Maliyet” ve “Kâr” sütunlarına erişim izni olabilir, ancak sadece belirli kullanıcıların “Maliyet” ve “Kâr” sütununu görebilmesi istenebilir. Bu örnek üzerinden uygulama yapalım.
Müşteri, Ülke, Şehir, Personel, Ürün ve Satış tablolarının bulunduğu veri modeli aşağıda belirtilmiştir.
Öncelikle görsel tablolarımızda yer almasını istediğimiz sütun, hesaplanmış sütun ve ölçüleri içeren bir parametre oluşturmak için aşağıdaki adımları takip edelim:
- Modelleme >Yeni Parametre > Alanlar seçeneğine gidin.
2. Tablomuzda yer almasını istediğimiz sütun ya da ölçüleri sırasıyla seçip “Oluştur” seçeneğine tıklayın.
3. Oluşturulan parametreyi açarak sütun isimleri ve sıralamayı düzenleyebilir yada yeni sütunlar ekleyebilirsiniz.
Parametreyi tablo görseline aktardıktan sonra artık yetkilendirme bölümüne geçebiliriz.
Kullanıcı Bazında Sütun Yetkileri Verme
Kullanıcı bazında sütun yetkileri vermek için sırasıyla aşağıdaki adımları takip edelim:
- Modelleme >Rolleri yönet seçeneğine gidin.
2. Roller bölümünden yeni bir rol ekleyin. Bu role kullanıcı yada bir grup ismi verebilirsiniz.
3. Eklediniz rol için yetkilendirme yapacağınız parametre tablosunu seçiniz.
4. Verileri filtrele bölümünden yeni bir filtre oluşturup tablo içinden istediğiniz sütunları seçiniz.
Sağ üst bölümden DAX düzenleyicisine geçerek sütunları DAX kodu ile de seçebilirsiniz. Ekleme işlemini bitirdikten sonra kaydedip kapatabilirsiniz.
Modelleme >Rolleri yönet seçeneğinden yetkilendirme işleminin doğruluğunu kontrol edebilirsiniz.
“Diğer” kullanıcı rolüne “Maliyet” ve “Kâr” sütunu için yetki verilmediğinden bu rolün tanımlanacağı çalışanlar bu sütunları göremeyecektir.
Alternatif Yöntem
Yetkilendirme yapmamız gereken bir çok kullanıcı ve farklı sütun olduğunda bu şekilde tek tek tanımlama yapmak bizim için zahmetli olabilir. Bu durumlarda aşağıda bahsedeceğim alternatif yöntemi uygulayabilirsiniz:
Öncelikle verilere erişim yetkisini tanımlayacak bir yetkilendirme tablosu oluşturun. Bu tablo, kullanıcıların hangi sütuna erişebileceğini tanımlar.
Tabloyu modele dahil ettikten sonra rolleri yönet bölümünden genel bir rol oluşturun ve aşağıda belirtilen DAX ifadesini kullanarak filtreleme yapınız.
[Parametre] IN SELECTCOLUMNS(
FILTER(
‘AuthorizationTable’,
‘AuthorizationTable’[UserEmail] = USERPRINCIPALNAME()
),
“AuthorizedColumn”, ‘AuthorizationTable’[AuthorizedColumn]
)
USERPRINCIPALNAME() fonksiyonu, kullanıcının oturum açtığı e-posta adresini döndürmektedir. Bu sayede kullanıcıya “Genel” rolü tanımlandığında sadece kendine tanımlanmış sütunları görebilmektedir.
Raporu Power BI portalda yayınladıktan sonra veri seti üzerinden güvenliği seçip rollere kullanıcı atayabilirsiniz.
Bu yöntemleri kendi raporlarınızda uygulayarak, Power BI’da sütun bazlı güvenliği sağlayabilirsiniz. Umarım yazı sizin için faydalı olmuştur. Sorularınız varsa yorum kısmında belirtebilirsiniz!