Power BI ile satır düzeyi güvenlik (RLS)Row-level security (RLS) with Power BI

Power BI ile satır düzeyi güvenlik (RLS), belirli kullanıcıların veri erişimini kısıtlamak için kullanılabilir.Row-level security (RLS) with Power BI can be used to restrict data access for given users. Filtreler, veri erişimini satır düzeyinde sınırlar ve rollerin içinde filtre tanımlayabilirsiniz.Filters restrict data access at the row level, and you can define filters within roles. Power BI hizmetinde bir çalışma alanının üyeleri, o çalışma alanındaki veri kümelerine erişebilir.In the Power BI service, members of a workspace have access to datasets in the workspace. RLS bu veri erişimini kısıtlamaz.RLS doesn't restrict this data access.

Power BI Desktop ile Power BI'a aktarılan veri modelleri için RLS'yi yapılandırabilirsiniz.You can configure RLS for data models imported into Power BI with Power BI Desktop. Ayrıca DirectQuery'yi kullanan SQL Server gibi veri kümelerinde de RLS'yi yapılandırabilirsiniz.You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. Analysis Services veya Azure Analysis Services canlı bağlantıları için, Satır düzeyi güvenliği Power BI Desktop yerine modelde yapılandırırsınız.For Analysis Services or Azure Analysis Services lives connections, you configure Row-level security in the model, not in Power BI Desktop. Güvenlik seçeneği, canlı bağlantı veri kümeleri için gösterilmez.The security option will not show up for live connection datasets.

Power BI Desktop'ta rol ve kural tanımlamaDefine roles and rules in Power BI Desktop

Power BI Desktop'ta rol ve kural tanımlayabilirsiniz.You can define roles and rules within Power BI Desktop. İçeriğinizi Power BI'da yayımladığınızda rol tanımları da yayımlanır.When you publish to Power BI, it also publishes the role definitions.

Güvenlik rollerini tanımlamak için şu adımları izleyin.To define security roles, follow these steps.

  1. Verilerinizi Power BI Desktop raporunuza aktarın veya bir DirectQuery bağlantısı yapılandırın.Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    Not

    Analysis Services için Power BI Desktop canlı bağlantılarında rol tanımlayamazsınız.You can't define roles within Power BI Desktop for Analysis Services live connections. Bu işlemi Analysis Services modelinin içinde yapmanız gerekir.You need to do that within the Analysis Services model.

  2. Modelleme sekmesinde Rolleri Yönet'i seçin.From the Modeling tab, select Manage Roles.

    Rolleri Yönet’i seçin

  3. Rolleri Yönet penceresinde Oluştur'u seçin.From the Manage roles window, select Create.

    Oluştur’u seçin

  4. Roller bölümünde rol için bir ad girin.Under Roles, provide a name for the role.

  5. Tablolar bölümünde DAX kuralı uygulamak istediğiniz tabloyu seçin.Under Tables, select the table to which you want to apply a DAX rule.

  6. Tablo filtresi DAX ifadesi kutusuna DAX ifadelerini girin.In the Table filter DAX expression box, enter the DAX expressions. Bu ifade true veya false değerini döndürür.This expression returns a value of true or false. Örneğin: [Entity ID] = “Value”.For example: [Entity ID] = “Value”.

    Rolleri yönet penceresi

    Not

    Bu ifadede username() parametresini kullanabilirsiniz.You can use username() within this expression. username() parametresinin Power BI Desktop'ta ETKİALANI\kullanıcıadı biçiminde olduğunu unutmayın.Be aware that username() has the format of DOMAIN\username within Power BI Desktop. Power BI hizmetinde ve Power BI Rapor Sunucusu'nda, kullanıcının Kullanıcı Asıl Adı (UPN) biçimindedir.Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). Alternatif olarak kullanıcıyı her zaman kullanıcı asıl adı biçiminde (kullanıcıadı@contoso.com) döndüren userprincipalname() işlevini kullanabilirsiniz.Alternatively, you can use userprincipalname(), which always returns the user in the format of their user principal name, username@contoso.com.

  7. DAX ifadesini oluşturduktan sonra ifadeyi doğrulamak için ifade kutusunun üstündeki onay işaretini seçin.After you've created the DAX expression, select the checkmark above the expression box to validate the expression.

    DAX ifadesini doğrulama

    Not

    Bu ifade kutusunda, normalde noktalı virgül ayırıcıları kullanan bir yerel ayar (ör. Fransızca veya Almanca) kullanıyor olsanız bile DAX işlevi bağımsız değişkenlerini ayırmak için virgül kullanırsınız.In this expression box, you use commas to separate DAX function arguments even if you're using a locale that normally uses semicolon separators (e.g. French or German).

  8. Kaydet'i seçin.Select Save.

Power BI Desktop'ta kullanıcıları bir role atayamazsınız.You can't assign users to a role within Power BI Desktop. Onları Power BI hizmetinde atarsınız.You assign them in the Power BI service. username() veya userprincipalname() DAX işlevlerini kullanarak ve ilişkileri doğru şekilde yapılandırarak Power BI Desktop'ta dinamik güvenliği etkinleştirebilirsiniz.You can enable dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions and having the proper relationships configured.

Varsayılan olarak, ilişkilerin tek yönlü veya çift yönlü olarak ayarlanmış olması fark etmeksizin satır düzeyi güvenlik filtrelemesi için tek yönlü filtreler kullanılır.By default, row-level security filtering uses single-directional filters, whether the relationships are set to single direction or bi-directional. İlişkiyi seçip Güvenlik filtrelerini her iki yönde de uygula onay kutusunu işaretleyerek, satır düzeyi güvenlik için çift yönlü çapraz filtrelemeyi kendiniz etkinleştirebilirsiniz.You can manually enable bi-directional cross-filtering with row-level security by selecting the relationship and checking the Apply security filter in both directions checkbox. Sunucu düzeyinde dinamik satır düzeyi güvenlik de uyguladıysanız (satır düzeyi güvenlik, kullanıcı adına veya oturum açma kimliğine göre yapıldığında) bu seçeneği belirleyin.Select this option when you've also implemented dynamic row-level security at the server level, where row-level security is based on username or login ID.

Daha fazla bilgi için Power BI Desktop'ta DirectQuery'yi kullanarak çift yönlü çapraz filtreleme makalesine ve Securing the Tabular BI Semantic Model (Tablolu BI Anlam Modelinin Güvenliğini Sağlama) başlıklı teknik makaleye bakın.For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical article.

Güvenlik Filtresi uygulama

Power BI Desktop'ta rolleri doğrulamaValidate the roles within Power BI Desktop

Rollerinizi oluşturduktan sonra rol sonuçlarını Power BI Desktop'ta test edin.After you've created your roles, test the results of the roles within Power BI Desktop.

  1. Modelleme sekmesinde Rol olarak görüntüle'yi seçin.From the Modeling tab, select View as Roles.

    Rol olarak görüntüle'yi seçin

    Oluşturduğunuz rollerin yer aldığı Rol olarak görüntüle penceresi açılır.The View as roles window appears, where you see the roles you've created.

    Rol olarak görüntüle penceresi

  2. Oluşturduğunuz rollerden birini seçin ve ardından Tamam'ı seçerek bu rolü uygulayın.Select a role you created, and then select OK to apply that role.

    Rapor seçilen rolle ilgili verileri işler.The report renders the data relevant for that role.

  3. Diğer kullanıcı’yı seçebilir ve bir kullanıcı belirtebilirsiniz.You can also select Other user and supply a given user.

    Diğer kullanıcı'yı seçin

    En iyisi Kullanıcı Asıl Adını (UPN) sağlamaktır çünkü Power BI hizmeti ve Power BI Rapor Sunucusu bunu kullanır.It's best to supply the User Principal Name (UPN) as that's what the Power BI service and Power BI Report Server use.

    Power BI Desktop'ta, Diğer kullanıcı ancak DAX ifadelerinize göre dinamik güvenlik kullandığınızda farklı sonuçlar gösterir.Within Power BI Desktop, Other user displays different results only if you're using dynamic security based on your DAX expressions.

  4. Tamam’ı seçin.Select OK.

    Raporlar kullanıcının görebileceği içerikle oluşturulur.The report renders based on what that user can see.

Modelinizde güvenliği yönetmeManage security on your model

Veri modelinizde güvenliği yönetmek için aşağıdakileri adımları gerçekleştirin:To manage security on your data model, do the following steps:

  1. Power BI hizmetinde, bir veri kümesi için Diğer seçenekler menüsünü seçin.In the Power BI service, select the More options menu for a dataset. Bu menü, gezinti menüsünden veya çalışma alanı sayfasından seçmeniz fark etmeksizin bir veri kümesi adının üzerine geldiğinizde görüntülenir.This menu appears when you hover on a dataset name, whether you select it from the navigation menu or the workspace page.

    Çalışma alanındaki Diğer seçenekler menüsü

    Gezinti menüsündeki Diğer seçenekler menüsü

  2. Güvenlik’i seçin.Select Security.

    Diğer seçenekler menüsünden Güvenlik’i seçin

Güvenlik, sizi Power BI Desktop’ta oluşturduğunuz bir role üye ekleyebileceğiniz RLS sayfasına yönlendirir.Security will take you to the RLS page where you add members to a role you created in Power BI Desktop. Yalnızca veri kümesinin sahipleri Güvenlik seçeneğini görür.Only the owners of the dataset will see Security. Veri kümesi bir Grupta yer alıyorsa yalnızca grup yöneticileri güvenlik seçeneğini görür.If the dataset is in a Group, only administrators of the group will see the security option.

Power BI Desktop'ta yalnızca rol oluşturabilir veya rolleri değiştirebilirsiniz.You can only create or modify roles within Power BI Desktop.

Üyelerle çalışmaWorking with members

Üye eklemeAdd members

Kullanıcının veya güvenlik grubunun adını ya da e-posta adresini yazarak role bir üye ekleyin.Add a member to the role by typing in the email address or name of the user or security group. Power BI’da oluşturulan Grupları ekleyemezsiniz.You can't add Groups created in Power BI. Kuruluşunuzun dışından üyeler ekleyebilirsiniz.You can add members external to your organization.

Üye ekleme

Rol adının veya Üyeler'in yanında parantez içinde gösterilen sayıya bakarak role kaç üyenin dahil olduğunu da görebilirsiniz.You can also see how many members are part of the role by the number in parentheses next to the role name, or next to Members.

Roldeki üyeler

Üyeleri kaldırmaRemove members

Üye adlarının yanındaki X işaretlerini seçerek üyeleri kaldırabilirsiniz.You can remove members by selecting the X next to their name.

Üyeyi kaldırma

Power BI hizmetinde rolü doğrulamaValidating the role within the Power BI service

Tanımladığınız rolü test ederek rolün doğru şekilde çalışıp çalışmadığını doğrulayabilirsiniz.You can validate that the role you defined is working correctly by testing the role.

  1. Rolün yanındaki Diğer seçenekler (...) düğmesini seçin.Select More options (...) next to the role.
  2. Verileri role göre test et seçeneğini belirleyinSelect Test data as role

Role göre test et

Bu rol için kullanılabilen raporları görürsünüz.You'll see reports that are available for this role. Panolar bu görünümde gösterilmez.Dashboards aren't shown in this view. Sayfa üst bilgisinde, uygulanmakta olan rol gösterilir.In the page header, the role being applied is shown.

Artık  olarak görüntüleniyor

Şu anda şu kişi olarak görüntülüyorsunuz seçeneğini belirleyerek diğer rolleri veya rol birleşimlerini test edin.Test other roles, or a combination of roles, by selecting Now viewing as.

Diğer rolleri test etme

Verileri belirli bir kullanıcı olarak görüntülemeyi tercih edebilir veya kullanılabilir rollerin bir birleşimini seçerek çalışıp çalışmadıklarını doğrulayabilirsiniz.You can choose to view data as a specific person or you can select a combination of available roles to validate they're working.

Normal görüntülemeye geri dönmek için Satır Düzeyi Güvenliğe Geri Dön seçeneğini belirleyin.To return to normal viewing, select Back to Row-Level Security.

username() veya userprincipalname() DAX işlevini kullanmaUsing the username() or userprincipalname() DAX function

Veri kümenizde username() veya userprincipalname() DAX işlevlerinden yararlanabilirsiniz.You can take advantage of the DAX functions username() or userprincipalname() within your dataset. Bunları Power BI Desktop'taki ifadelerde kullanabilirsiniz.You can use them within expressions in Power BI Desktop. Yayımladığınız model Power BI hizmetinde kullanılır.When you publish your model, it will be used within the Power BI service.

Power BI Desktop'ta username() , ETKİALANI\Kullanıcı biçiminde bir kullanıcı; userprincipalname() ise user@contoso.com biçiminde bir kullanıcı döndürür.Within Power BI Desktop, username() will return a user in the format of DOMAIN\User and userprincipalname() will return a user in the format of user@contoso.com.

Power BI hizmetinde, username() ve userprincipalname() işlevlerinin her ikisi de kullanıcının Kullanıcı Asıl Adını (UPN) döndürür.Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). Bu, bir e-posta adresine benzer.This looks similar to an email address.

Power BI'da çalışma alanlarıyla RLS'yi kullanmaUsing RLS with workspaces in Power BI

Power BI Desktop raporunuzu Power BI hizmetindeki bir çalışma alanında yayımlarsanız roller salt okunur üyeler için geçerli olur.If you publish your Power BI Desktop report to a workspace in the Power BI service, the roles will be applied to read-only members. Çalışma alanı ayarlarında üyelerin Power BI içeriğini yalnızca görüntüleyebileceklerini belirtmeniz gerekir.You'll need to indicate that members can only view Power BI content in the workspace settings.

Uyarı

Çalışma alanını yapılandırırken, üyelerin düzenleme izinlerine sahip olacağını belirttiyseniz RLS rolleri söz konusu üyeler için geçerli olmaz.If you have configured the workspace so that members have edit permissions, the RLS roles won't be applied to them. Kullanıcılar verilerin tamamını görüntüleyebilir.Users can see all of the data.

Grup ayarları

SınırlamalarLimitations

Bulut modellerindeki satır düzeyi güvenlik hakkındaki geçerli sınırlamalar şunlardır:The current limitations for row-level security on cloud models are as follows:

  • Power BI hizmetinde tanımlanmış olduğunuz roller ve kurallar varsa bunları Power BI Desktop'ta tekrar oluşturmanız gerekir.If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI Desktop.

  • RLS özelliğini yalnızca Power BI Desktop ile oluşturulan veri kümelerinde tanımlayabilirsiniz.You can define RLS only on the datasets created with Power BI Desktop. RLS özelliğini Excel ile oluşturulmuş olan veri kümeleri için etkinleştirmek isterseniz öncelikle dosyalarınızı Power BI Desktop (PBIX) biçimine dönüştürmeniz gerekir.If you want to enable RLS for datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. Daha fazla bilgi.Learn more.

  • Yalnızca İçeri Aktarma ve DirectQuery bağlantıları desteklenir.Only Import and DirectQuery connections are supported. Analysis Services canlı bağlantıları şirket içi modelde işlenir.Live connections to Analysis Services are handled in the on-premises model.

Bilinen sorunlarKnown issues

Bilinen sorunların biri, önceden yayımlanmış olan bir raporu Power BI Desktop uygulamasından yayımlamaya çalıştığınızda ortaya çıkan hata iletisidir.There's a known issue where you'll get an error message if you try to publish a previously published report from Power BI Desktop. Senaryo aşağıdaki gibidir:The scenario is as follows:

  1. Anna, Power BI hizmetinde yayımlanmış ve RLS yapılandırması yapılmış bir veri kümesine sahiptir.Anna has a dataset that is published to the Power BI service and has configured RLS.

  2. Anna raporu Power BI Desktop uygulamasında güncelleştirip tekrar yayımlar.Anna updates the report in Power BI Desktop and republishes.

  3. Anna bir hata alır.Anna receives an error.

Geçici çözüm: Bu sorun giderilene kadar Power BI Desktop dosyasını Power BI hizmetinden yayımlayın.Workaround: Republish the Power BI Desktop file from the Power BI service until this issue is resolved. Bu işlemi, Veri Al > Dosyalar adımlarını izleyerek yapabilirsiniz.You can do that by selecting Get Data > Files.

SSSFAQ

Soru: Power BI hizmetindeki bir veri kümesi için önceden roller ve kurallar oluşturduysam ne yapmam gerekir?Question: What if I had previously created roles and rules for a dataset in the Power BI service? Herhangi bir işlem yapmasam da bunlar çalışmaya devam eder mi?Will they still work if I do nothing?
Cevap: Hayır. Görseller düzgün şekilde oluşturulmaz.Answer: No, visuals will not render properly. Rolleri ve kuralları Power BI Desktop uygulamasında tekrar oluşturmanız ve Power BI hizmetinde yayımlamanız gerekir.You will have to re-create the roles and rules within Power BI Desktop and then publish to the Power BI service.

Soru: Bu rolleri Analysis Services veri kaynakları için oluşturabilir miyim?Question: Can I create these roles for Analysis Services data sources?
Cevap: Verileri Power BI Desktop'a aktardıysanız oluşturabilirsiniz.Answer: You can if you imported the data into Power BI Desktop. Canlı bağlantı kullanıyorsanız Power BI hizmetinden RLS yapılandırması gerçekleştiremezsiniz.If you are using a live connection, you will not be able to configure RLS within the Power BI service. Bu yapılandırma şirket içi Analysis Services modelinde tanımlanır.This is defined within the Analysis Services model on-premises.

Soru: Kullanıcılarımın erişebileceği sütunları veya ölçüleri sınırlamak için RLS kullanabilir miyim?Question: Can I use RLS to limit the columns or measures accessible by my users?
Cevap: Hayır. Belirli bir veri satırına erişimi olan kullanıcılar, ilgili satırdaki tüm veri sütunlarını görebilir.Answer: No, if a user has access to a particular row of data, they can see all the columns of data for that row.

Soru: RLS, ayrıntılı verileri gizlerken görsellerde özetlenmiş verilere erişim vermemi sağlar mı?Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
Cevap: Hayır. Belirli veri satırlarının güvenliğini sağlayabilirsiniz, ama kullanıcılar ayrıntıları veya özetlenmiş verileri her zaman görebilir.Answer: No, you secure individual rows of data but users can always see either the details or the summarized data.

Soru: Veri kaynağımda tanımlanmış güvenlik rolleri zaten var (örneğin, SQL Server rolleri veya SAP BW rolleri).Question: My data source already has security roles defined (for example SQL Server roles or SAP BW roles). Bunlar ile RLS arasındaki ilişki nedir?What is the relationship between these and RLS?
Cevap: Yanıt, verileri içeri aktarıp aktarmadığınıza veya DirectQuery kullanıp kullanmadığınıza bağlı olarak değişir.Answer: The answer depends on whether you're importing data or using DirectQuery. Power BI veri kümenize veri aktarıyorsanız, veri kaynağınızdaki güvenlik rolleri kullanılmaz.If you're importing data into your Power BI dataset, the security roles in your data source aren't used. Bu durumda, Power BI’da bağlanan kullanıcılar için güvenlik kurallarını uygulamak için RLS tanımlamanız gerekir.In this case, you should define RLS to enforce security rules for users who connect in Power BI. DirectQuery kullanıyorsanız, veri kaynağınızdaki güvenlik rolleri kullanılır.If you're using DirectQuery, the security roles in your data source are used. Kullanıcı bir rapor açtığında Power BI temel alınan veri kaynağına bir sorgu gönderir ve bu sorgu, kullanıcının kimlik bilgilerine göre bu verilere güvenlik kuralları uygular.When a user opens a report Power BI sends a query to the underlying data source, which applies security rules to the data based on the user's credentials.

Sonraki adımlarNext steps