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

Reporting services 如果我不是报告的所有者,如何将SSRS报告复制到新服务器,reporting-services,Reporting Services,我必须将所有报告从一个SSRS服务器复制到另一个SSRS服务器。我计划通过查看每个报表并下载报表定义文件,然后将文件上载到新服务器来完成这项工作 我被授予了系统管理员和系统用户站点范围的角色,并且我拥有主文件夹的浏览器、内容管理器、我的报表、发布者和报表生成器角色,但我仍然看不到允许我保存报表定义文件的编辑按钮。原因是报告归其他用户所有。我不能要求所有的用户都给我编辑他们报告的权限,因为有太多的用户,我想他们中的很多人都不会抽出时间来编辑他们的报告 如果我不是大多数的所有者,我能做什么来将所有的

我必须将所有报告从一个SSRS服务器复制到另一个SSRS服务器。我计划通过查看每个报表并下载报表定义文件,然后将文件上载到新服务器来完成这项工作

我被授予了系统管理员和系统用户站点范围的角色,并且我拥有主文件夹的浏览器、内容管理器、我的报表、发布者和报表生成器角色,但我仍然看不到允许我保存报表定义文件的编辑按钮。原因是报告归其他用户所有。我不能要求所有的用户都给我编辑他们报告的权限,因为有太多的用户,我想他们中的很多人都不会抽出时间来编辑他们的报告


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

< P>如果你可以考虑替换新服务器上的所有报告,你应该看看移动RePoServer数据库。这还将移动订阅和缓存数据:

您使用的是什么版本的SSR?编辑按钮出现在SSRS2005中,但在2008年或2008年R2中不再出现:它被替换为“下载”按钮。这可能是问题所在吗

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

让我知道你在看什么版本。 杰米F使用

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

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


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

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

尝试此工具:

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

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


注意:我自己编写这个工具是为了满足我的需要,但它是免费的、开源的。

首先:在备份新的报表数据库之前。 将以下表格从原始报告数据库复制到新报告数据库: -目录 -块数据 -数据源 -政策 -PolicyuserRole -SecData -使用者

确保不要复制密钥表


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

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

Reporting Services迁移工具

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


我没有亲自使用过这个,老实说,描述中列出了一些开发人员正在“努力寻找解决方案”的失败之处,但它可能会帮助某些人解决问题。

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

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

--允许更改高级选项。EXEC sp_配置“显示高级选项”,1次执行
--更新高级选项的当前配置值。重新配置GO
--启用xp\u cmdshell EXEC sp\u配置“xp\u cmdshell”,1 GO
--更新xp\u cmdshell重新配置GO的当前配置值
--不允许进一步更改高级选项。EXEC sp_配置“显示高级选项”,0转到
--更新高级选项的当前配置值。重新配置GO

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

将@FilterReportPath声明为VARCHAR(500)=NULL DECLARE @FilterReportName作为VARCHAR(500)=NULL

将@OutputPath声明为VARCHAR(500)='D:\Reports\Download\'

将@TSQL声明为NVARCHAR(MAX)SET@OutputPath= 替换(@OutputPath,'\','/'))

如果LTRIM(RTRIM(ISNULL(@OutputPath,))=“”开始选择“”无效 输出路径'END ELSE BEGIN SET@TSQL=STUFF((选择';执行 master..xp_cmdshell“bcp”+“选择”+“转换”(VARCHAR(MAX),” +左起时的“CASE”+(C.Content,3)=0xEFBBBF,然后填充(C.Content,1,3,“)+”否则C.Content“+”
结束'+'[ReportServer].[dbo].[Catalog]CL'+'交叉的'+'字符 应用(选择CONVERT(VARBINARY(MAX),CL.Content)内容)C'+' 其中'+'CL.ItemID=''CONVERT(VARCHAR(MAX),CL.ItemID)+ queryout++@OutputPath++CL.Name++.rdl++-T-c -来自[ReportServer].[dbo].[Catalog]CL的x“”,其中CL.[Type]=2--报告和“/”+CL.[Path]+“/”类合并(“%/%”+@FilterReportPath+“%/%”,“/”+CL.[Path]+“/”)和CL.类名称 为XML路径(“”)合并(“%”++@FilterReportName++“%”,CL.Name)