<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Retreive the use of Row-level security in Report Server</title>
    <link>https://community.fabric.microsoft.com/t5/Report-Server/Retreive-the-use-of-Row-level-security/m-p/3913517#M34879</link>
    <description>&lt;P&gt;Great, thank you! With your example I was able to make below loop and got all of them.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;# Define variables&lt;/DIV&gt;&lt;DIV&gt;$webPortalURL = "&lt;A href="https://example.com/ReportsPowerBI" target="_blank"&gt;https://example.com/ReportsPowerBI&lt;/A&gt;"&lt;/DIV&gt;&lt;DIV&gt;$PBI_Reports_Array = @()&lt;/DIV&gt;&lt;DIV&gt;$PBI_Reports_Array = $(Invoke-RestMethod -UseDefaultCredentials -uri $($webPortalURL + "/api/v2.0/PowerBIReports"))&lt;/DIV&gt;&lt;DIV&gt;$loopCount = 0&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;$RoleAssignments = @()&lt;/DIV&gt;&lt;DIV&gt;# Loop through all Power BI reports&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;foreach ($reportPath in $PBI_Reports_Array.value.path) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; try {&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;$RoleAssignmentsPath = $ReportServerUri + "/api/v2.0/PowerBIReports(Path='" + $reportPath + "')/DataModelRoleAssignments";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;$RolesPath = $ReportServerUri + "/api/v2.0/PowerBIReports(Path='" + $reportPath + "')/DataModelRoles";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#call API - row level security&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;$RoleAssignments += $(Invoke-RestMethod -Uri $RoleAssignmentsPath -ContentType "application/json" -UseDefaultCredentials -Method Get);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#call API - RLS role&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#$Roles = Invoke-RestMethod -Uri $RolesPath -ContentType "application/json" -UseDefaultCredentials -Method Get&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ([string]::IsNullOrEmpty($($RoleAssignments[$loopCount].value))) {&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write-host "$loopCount | $reportPath | No DataModelRoleAssignments for this report!";&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write-host "$loopCount | $reportPath | $($RoleAssignments[$loopCount].value.GroupUserName)" -foregroundcolor magenta;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $loopCount++;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; catch {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;</description>
    <pubDate>Mon, 13 May 2024 09:34:03 GMT</pubDate>
    <dc:creator>jlwkok</dc:creator>
    <dc:date>2024-05-13T09:34:03Z</dc:date>
    <item>
      <title>Retreive the use of Row-level security</title>
      <link>https://community.fabric.microsoft.com/t5/Report-Server/Retreive-the-use-of-Row-level-security/m-p/3894849#M34790</link>
      <description>&lt;P&gt;Can you get this data for all reports at once from the PBIRS database or via a PowerShell request?&lt;/P&gt;&lt;P&gt;This is regarding more than 400 reports and that's why I'm looking for an automated solution/query.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;</description>
      <pubDate>Tue, 07 May 2024 05:14:13 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Report-Server/Retreive-the-use-of-Row-level-security/m-p/3894849#M34790</guid>
      <dc:creator>jlwkok</dc:creator>
      <dc:date>2024-05-07T05:14:13Z</dc:date>
    </item>
    <item>
      <title>Re: Retreive the use of Row-level security</title>
      <link>https://community.fabric.microsoft.com/t5/Report-Server/Retreive-the-use-of-Row-level-security/m-p/3896924#M34798</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="59136" data-lia-user-login="jlwkok" class="lia-mention lia-mention-user"&gt;jlwkok&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You configure RLS for reports imported into Power BI with Power BI Desktop. You can also configure RLS on reports that use DirectQuery, such as SQL Server. Keep in mind that RLS isn't respected if your DirectQuery connection uses integrated authentication for report readers. For Analysis Services live connections, you configure row-level security on the on-premises model. The security option doesn't show up for live connection datasets.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;For more details, you could read related document:&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/power-bi/report-server/row-level-security-report-server" target="_blank"&gt;Row-level security (RLS) in Power BI Report Server - Power BI | Microsoft Learn&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Best regards,&lt;BR /&gt;Community Support Team_Binbin Yu&lt;BR /&gt;If this post&amp;nbsp;&lt;STRONG&gt;&lt;I&gt;helps&lt;/I&gt;&lt;/STRONG&gt;, then please consider&amp;nbsp;&lt;STRONG&gt;&lt;I&gt;Accept it as the solution&lt;/I&gt;&lt;/STRONG&gt;&amp;nbsp;to help the other members find it more quickly.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 07 May 2024 01:50:02 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Report-Server/Retreive-the-use-of-Row-level-security/m-p/3896924#M34798</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2024-05-07T01:50:02Z</dc:date>
    </item>
    <item>
      <title>Re: Retreive the use of Row-level security</title>
      <link>https://community.fabric.microsoft.com/t5/Report-Server/Retreive-the-use-of-Row-level-security/m-p/3901269#M34829</link>
      <description>&lt;P&gt;powershell script you can use to get rls for one report:&lt;/P&gt;&lt;P&gt;&lt;FONT color="#808080"&gt;$ReportServerUri = "https://&amp;lt;server_name&amp;gt;/PBIReports&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#808080"&gt;#API to get roles and role assignments&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#808080"&gt;$RoleAssignmentsPath = $ReportServerUri + "/api/v2.0/PowerBIReports(Path='&amp;lt;ReportPath&amp;gt;')/DataModelRoleAssignments"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#808080"&gt;$RolesPath = $ReportServerUri + "/api/v2.0/PowerBIReports(Path='&amp;lt;ReportPath&amp;gt;')/DataModelRoles"&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#808080"&gt;#call API - row level security&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#808080"&gt;$RoleAssignments = Invoke-RestMethod -Uri $RoleAssignmentsPath -ContentType "application/json" -UseDefaultCredentials -Method Get&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#808080"&gt;#call API - RLS role&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#808080"&gt;$Roles = Invoke-RestMethod -Uri $RolesPath -ContentType "application/json" -UseDefaultCredentials -Method Get&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;note that in above script if your report is in root folder of PBIRS portal then&amp;nbsp;&amp;nbsp;&lt;FONT color="#808080"&gt;&amp;lt;ReportPath&amp;gt;&amp;nbsp;&lt;/FONT&gt;&amp;nbsp;is /report_name&lt;/DIV&gt;&lt;DIV&gt;hope this fix your issue!&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Wed, 08 May 2024 07:11:55 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Report-Server/Retreive-the-use-of-Row-level-security/m-p/3901269#M34829</guid>
      <dc:creator>sarada</dc:creator>
      <dc:date>2024-05-08T07:11:55Z</dc:date>
    </item>
    <item>
      <title>Re: Retreive the use of Row-level security</title>
      <link>https://community.fabric.microsoft.com/t5/Report-Server/Retreive-the-use-of-Row-level-security/m-p/3913517#M34879</link>
      <description>&lt;P&gt;Great, thank you! With your example I was able to make below loop and got all of them.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;# Define variables&lt;/DIV&gt;&lt;DIV&gt;$webPortalURL = "&lt;A href="https://example.com/ReportsPowerBI" target="_blank"&gt;https://example.com/ReportsPowerBI&lt;/A&gt;"&lt;/DIV&gt;&lt;DIV&gt;$PBI_Reports_Array = @()&lt;/DIV&gt;&lt;DIV&gt;$PBI_Reports_Array = $(Invoke-RestMethod -UseDefaultCredentials -uri $($webPortalURL + "/api/v2.0/PowerBIReports"))&lt;/DIV&gt;&lt;DIV&gt;$loopCount = 0&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;$RoleAssignments = @()&lt;/DIV&gt;&lt;DIV&gt;# Loop through all Power BI reports&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;foreach ($reportPath in $PBI_Reports_Array.value.path) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; try {&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;$RoleAssignmentsPath = $ReportServerUri + "/api/v2.0/PowerBIReports(Path='" + $reportPath + "')/DataModelRoleAssignments";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;$RolesPath = $ReportServerUri + "/api/v2.0/PowerBIReports(Path='" + $reportPath + "')/DataModelRoles";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#call API - row level security&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;$RoleAssignments += $(Invoke-RestMethod -Uri $RoleAssignmentsPath -ContentType "application/json" -UseDefaultCredentials -Method Get);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#call API - RLS role&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#$Roles = Invoke-RestMethod -Uri $RolesPath -ContentType "application/json" -UseDefaultCredentials -Method Get&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ([string]::IsNullOrEmpty($($RoleAssignments[$loopCount].value))) {&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write-host "$loopCount | $reportPath | No DataModelRoleAssignments for this report!";&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write-host "$loopCount | $reportPath | $($RoleAssignments[$loopCount].value.GroupUserName)" -foregroundcolor magenta;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $loopCount++;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; catch {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;</description>
      <pubDate>Mon, 13 May 2024 09:34:03 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Report-Server/Retreive-the-use-of-Row-level-security/m-p/3913517#M34879</guid>
      <dc:creator>jlwkok</dc:creator>
      <dc:date>2024-05-13T09:34:03Z</dc:date>
    </item>
  </channel>
</rss>

