如何使Report Server跳过数据库身份验证并隐藏参数提示

时间:2012-12-13 13:14:38

标签: reporting-services sql-server-2008-r2

我是Report Server的新手,我遇到了两个问题。

我会给你一些信息然后我解释一下。

我创建了一个Report Server Project,在其中,我还创建了一个共享数据源,它具有用户ID和密码,可以授予对Sql Server 2005数据库的访问权限。但我的报表服务器是在Sql Server 2008 R2上创建的。

创建共享数据源后,我创建了一个共享数据集,它使用共享数据源作为数据源。此DataSet上使用的命令类型是“存储过程”,此过程接收参数,因此,DataSet也接收这些参数。

然后,我创建了一个Report,我将DataSet拖到此报告中,它会自动创建参数报告。

让我们把问题分开......

第一个问题:如何隐藏报告参数在URL访问报告时提示

当我通过右键单击.rdl文件并单击“运行”来运行报告时,不会显示参数提示,但是当从外部访问报告(在报告服务器上部署报告之后) URL,显示参数提示。

我该怎么做才能改变这种行为?我已经尝试将标记设置如下:

<Hidden>true</Hidden>

但它一直在做同样的事情。

以下是我的报告参数的代码段。

<ReportParameters>
    <ReportParameter Name="IDFUNC">
        <DataType>Integer</DataType>
        <DefaultValue>
            <Values>
                <Value>
                    10
                </Value>
            </Values>
        </DefaultValue>
    </ReportParameter>
    <ReportParameter Name="dtInicial">
        <DataType>DateTime</DataType>
        <DefaultValue>
            <Values>
                <Value>
                    06/01/2012
                </Value>
            </Values>
        </DefaultValue>
    </ReportParameter>
    <ReportParameter Name="dtFinal">
        <DataType>DateTime</DataType>
        <DefaultValue>
            <Values>
                <Value>
                    09/01/2012
                </Value>
            </Values>
        </DefaultValue>
    </ReportParameter>
</ReportParameters>

我已经尝试在报表参数属性对话框中隐藏这些参数。但在这种情况下,我收到消息错误“&lt;提示:&gt;输入参数提示”。

为了清楚起见,我将通过QueryString(URL)传递我需要的参数。

第二个问题:报告在加载报告时要求数据库凭据(仅当通过URL访问时)

如何使报告在URL访问时跳过数据库身份验证?

好吧,伙计们,这就是一切。 如果您需要更多信息来帮助我,请询问。

感谢。

1 个答案:

答案 0 :(得分:2)

您所看到的是传播问题:Reporting Services不会传播身份验证凭据,因此您需要使用浏览器打开服务器上的数据源并打开其属性并再次输入凭据。这样做是出于安全原因,您只需要更新服务器上的凭据一次。

同样,有时当参数更改时,它们也不会被传播(如果Reporting Services服务器认为您已从其已部署的设置中修改了参数 - 它会为您保留修改后的值)。您可能需要使用浏览器再次更新服务器上的参数。选择该报告的管理参数并将其设置为隐藏。删除和重新部署报告也可能有效。