【问题标题】:SSRS RDL Files to Find Data source reference?SSRS RDL 文件查找数据源参考?
【发布时间】:2018-03-28 16:06:36
【问题描述】:

使用 SQL 脚本,我们将编写什么来查找共享数据源引用(以绿色突出显示)以及 SSRS rdl 文件中蓝框中的名称?

我正在寻找一个列表来提取所用服务器上的所有报表名称、数据源名称(蓝色框内)和实际数据源引用(绿色框内)。使用的名称有很多重叠,我们需要清理报告。 (有太多手动执行此操作)。

【问题讨论】:

  • 使用 sql 脚本?您的意思是要检查 SQL Server 上的报告吗?它们存储为 varbinary(请参阅SELECT Content FROM ReportServer.dbo.[Catalog];),Microsoft 不提供解密密钥。您需要检查本地存储的文件。最简单的方法是通过 PowerShell。
  • 是的,我想通过 sql management studio 登录到服务器并使用脚本来提取这些数据,而不是手动查看现有的数百个报告。我用什么代码?我找不到合适的表格来参考。
  • 您不能对部署报告执行此操作。您需要检查本地文件(例如使用 PoSh 脚本)。
  • SELECT Content FROM ReportServer.dbo.[Catalog] 提供了大量内存类型数据,主要是十六进制值。没有具体的字符串。很长的一系列十六进制内存地址。
  • 是的,当您使用 CONVERT(xml, CONVERT(varbinary(max), content)) 转换内容时,您会得到大量的半敏感数据。我仍然不确定如何专门提取该字段

标签: sql-server reporting-services datasource ssrs-2008-r2 rdl


【解决方案1】:

可以在这里找到答案: Listing all Data Sources and their Dependencies (reports, items, etc) in SQL Server 2008 R2

SELECT
    C2.Name AS Data_Source_Name,
    C.Name AS Dependent_Item_Name,
    C.Path AS Dependent_Item_Path
FROM
    ReportServer.dbo.DataSource AS DS
        INNER JOIN
    ReportServer.dbo.Catalog AS C
        ON
            DS.ItemID = C.ItemID
                AND
            DS.Link IN (SELECT ItemID FROM ReportServer.dbo.Catalog
                        WHERE Type = 5) --Type 5 identifies data sources
        FULL OUTER JOIN
    ReportServer.dbo.Catalog C2
        ON
            DS.Link = C2.ItemID
WHERE
    C2.Type = 5
ORDER BY
    C2.Name ASC,
    C.Name ASC;

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多