reporting-services - Reporting Services 2008 R2 Web 服务 api - 如何管理安全权限?

标签 reporting-services ssrs-2008

我正在编写一个 powershell 脚本,以使用 SSRS Web 服务将大量报告部署到 SQL Server Reporting Services 2008 R2。我对这种方法很满意,很容易创建一个新的部署文件夹并上传报告。以下是显示文件夹创建的代码片段:

$reportServerUri = "http://{0}/ReportServer/ReportService2005.asmx" -f $reportServerName   
$proxy = New-WebServiceProxy -Uri $reportServerUri -Namespace SSRS.ReportingService2005 -Credential $credential
#Dont currently set any properties so set empty array of properties
$propertyArray = @()   
$warnings = $proxy.CreateFolder($folderName, $folderParent, $propertyArray)

但是我也希望能够设置文件夹的权限,这就是我有点卡住的地方。我想要复制的是,从 Web UI 中,我将选择文件夹的安全选项并针对角色添加用户\组。

我认为这可能是通过 createFolder 调用中的 propertyArray 完成的,但我还没有在文档中找到任何信息(探测现有属性并且看不到任何相关内容),我一直在查看 http://msdn.microsoft.com/en-us/library/cc282788.aspx为指导。于是在那里走到了死胡同。我认为可能有一种特定的方法来管理此级别的权限,但无法确定。

我正在使用 ReportingService2005 网络服务,我知道还有 2010 网络服务,但我也无法在那里找到我要找的东西。

有谁知道我如何使用 Web 服务 api 向文件夹添加权限(并且可能是其他对象如报告和共享数据源的一致方法)?我认为它一定是可能的,因为 Web UI 允许您这样做。这不是一个 powershell 问题,而是关于用于管理权限的 api。

更新 - 以下是似乎可以完成这项工作的代码片段。我需要稍微改进一下,因为看起来策略更新必须包含原始列表,因此我需要获取当前策略,将我的新策略添加到此并使用完整列表进行更新。但我稍后会解决这个问题!
$Policies = $global:ssrsproxy.GetPolicies($ItemPath, [ref] $InheritsFromParent)   
$PolicyAlreadyExists = $false

$Policies | Foreach-Object{ if ($_.GroupUserName -eq $GroupUserName)    
    {$PolicyAlreadyExists = $true} }
$Policies | Foreach-Object{ $_ | get-member }

    if ($PolicyAlreadyExists){
        "Policy already applied."
    } else {        
        $Policy = New-Object SSRS.ReportingService2005.Policy
        $Policy.GroupUserName = $GroupUserName       
        $Roles = @()   
        $Role = New-Object SSRS.ReportingService2005.Role
        $Role.Name = $RoleName
        $Roles += $Role
        $Policy.Roles = $Roles            

        $global:ssrsproxy.SetPolicies($ItemPath, $Policy)
        "Policy applied."
}           

最佳答案

使用 SetPolicies方法。首先定义一个数组Policy(s)包含组/用户和所需角色,然后将此数组与项目一起传递给 SetPolicies。

关于reporting-services - Reporting Services 2008 R2 Web 服务 api - 如何管理安全权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8952273/

相关文章:

reporting-services - SSRS - 从 CSV 文件导入数据以用作报表服务器上的数据源

sql - 企业报告解决方案

reporting-services - 将 SSRS 折线图的 X 轴居中于零

sql - 从 SSRS 2008 ReportViewer 导出到 Excel 会导致重复列

vb.net - 将 system.linq 引用添加到 ssrs 自定义代码

reporting-services - 我可以将表达式结果分配给 SSRS 2008 中的变量吗

sql-server - 自动执行 SQL Server 报告

SQL 从 3 位小数舍入到 2 位小数

ssrs-2008 - 如何使用日期时间获取毫秒?

ssrs-2008 - 在 SSRS 中创建条件总行