如果我不是报告的所有者,如何将SSRS报告复制到新服务器

时间:2011-03-17 08:24:25

标签: reporting-services

我必须将所有报告从一个SSRS服务器复制到另一个SSRS服务器。我计划通过浏览每个报告并下载报告定义文件然后将文件上传到新服务器来完成此操作。

我已获得系统管理员和系统用户站点范围的角色,我有Home文件夹的浏览器,内容管理器,我的报告,发布者和报告构建器角色,但我仍然看不到允许我使用的编辑按钮保存报告定义文件。原因是报告归其他用户所有。我不能要求所有用户都授予我编辑报告的权限,因为用户太多了,而且我认为他们中的很多人都无法完成这项工作。

如果我不是大多数报告的所有者,我该怎么做才能将所有报告复制到新服务器?

7 个答案:

答案 0 :(得分:42)

试试这个工具: http://code.google.com/p/reportsync/

它可以将所有报告(或选定的文件夹)从一台服务器同步到另一台服务器。 此外,您还可以下载并从本地文件夹上传。

具有相同名称的数据源将自动附加。 由于您无需在上传后重新附加数据源,因此可节省大量时间。

注意:我自己编写此工具以满足我的需求,但它是免费和开源的。

答案 1 :(得分:6)

使用this

只需将其指向您的RS服务器并让它运行即可。关于什么是脚本和什么不脚本,它有很多选择。其中一个是下载现有的RDL文件。

完成后 只是一个查找和替换工具来更改服务器名称(在生成的脚本中)和任何其他密码/位置信息,并让它运行。它本质上是使用RS.exe。

我似乎记得在部署时必须在SSRS框上本地运行它。

答案 2 :(得分:3)

对于SQL Server Reporting Services 2008 R2或更高版本,Microsoft具有迁移工具:

http://www.microsoft.com/en-us/download/details.aspx?id=29560

  

Reporting Services迁移工具

     

从一个报表迁移报表和其他工件的工具   服务器到另一个报表服务器它也可以用作备份和   还原Reporting Services的工具。

我没有个人使用这个,说实话,这个描述列出了一些开发人员正在“努力寻求解决方案”的失败,但它可能会帮助某人。

答案 3 :(得分:1)

如果您可以考虑替换新服务器上的所有报告,则应该查看移动ReportServer数据库。这也将移动订阅和缓存数据: http://technet.microsoft.com/en-us/library/ms156421.aspx

您使用的是什么版本的SSRS?编辑按钮位于SSRS 2005中,但不再是2008或2008 R2:它已替换为“下载”按钮。这可能是问题吗?

作为内容管理员,您应该能够编辑任何报告的定义。

让我知道您正在查看的版本。 杰米F

答案 4 :(得分:0)

我最终做的是以服务器管理员用户身份运行Internet Explorer。您可以通过按住shift并右键单击开始菜单上的Internet Explorer图标,然后选择“以其他用户身份运行”来执行此操作。然后,输入域管理员用户帐户的登录详细信息,并输入报表服务器的地址。作为域的服务器管理员用户,我可以成为所有报告的Content Manager用户。

答案 5 :(得分:0)

首先:在执行此操作之前备份新的Reports数据库。 将以下表格从原始报告数据库复制到新的报告数据库: - 目录 - ChunkData - 数据源 - 政策 - PolicyuserRole - SecData - 用户

确保您不要复制Keys表!

此问题的一个问题是您需要重新创建所有共享数据源并将其重新分配给每个报告。但是,这将复制所有文件夹,报告和用户角色。

答案 6 :(得分:-1)

SSRS使用SQL Server将其详细信息存储为后端,Catalog表用于以二进制形式存储报告文件。下面的脚本只是从Catalog表&中提取报表定义。使用BCP实用程序在预定义的路径上将其导出为.rdl文件。

要使用TSQL中的BCP实用程序,我们需要执行“xp_cmdshell”命令;它默认是禁用的。因此,首先需要执行以下脚本来启用它 -

  

- 允许更改高级选项。 EXEC sp_configure'show advanced options',1 GO
   - 更新高级选项的当前配置值。 RECONFIGURE GO
   - 启用xp_cmdshell EXEC sp_configure'xp_cmdshell',1 GO
   - 更新xp_cmdshell RECONFIGURE GO的当前配置值    - 禁止进一步更改高级选项。 EXEC sp_configure'show advanced options',0 GO
   - 更新高级选项的当前配置值。 RECONFIGURE GO

成功执行后,可执行下面带有所需更改的脚本以下载文件 -

  

DECLARE @FilterReportPath AS VARCHAR(500)= NULL DECLARE   @FilterReportName AS VARCHAR(500)= NULL

     

DECLARE @OutputPath AS VARCHAR(500)='D:\ Reports \ Download \'

     

DECLARE @TSQL AS NVARCHAR(MAX)SET @OutputPath =   REPLACE(@OutputPath, '\', '/')

     

如果LTRIM(RTRIM(ISNULL(@OutputPath,'')))=''BEGIN SELECT'无效   输出路径'END ELSE BEGIN SET @TSQL = STUFF((SELECT'; EXEC   master..xp_cmdshell''bcp“'+'SELECT'+'CONVERT(VARCHAR(MAX),'   +'CASE'+'左边(C.Content,3)= 0xEFBBBF然后STUFF(C.Content,1,3,''''''''''ELSE C.Content'+'
  END)'+'FROM'+'[ReportServer]。[dbo]。[目录] CL'+'CROSS   APPLY(SELECT CONVERT(VARBINARY(MAX),CL.Content)Content)C'+'   WHERE'+'CL.ItemID ='''''+ CONVERT(VARCHAR(MAX),CL.ItemID)+   ''''''''queryout''+ @OutputPath +''+ CL.Name +'.rdl“'+' - T -c   -x'''FROM [ReportServer]。[dbo]。[目录] CL WHERE CL。[类型] = 2 - 报告AND'/'+ CL。[路径] +'/'LIKE COALESCE('%/% '+ @FilterReportPath +'%/%','/'+ CL。[路径] +'/')和CL.Name LIKE   COALESCE('%'+ @FilterReportName +'%',CL.Name)FOR XML PATH('')),   1,1, '')

     

EXEC SP_EXECUTESQL @TSQL END