Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 通过参数+;安全_Security_Reporting Services_Ssrs 2008_Connection String_Database Security - Fatal编程技术网

Security 通过参数+;安全

Security 通过参数+;安全,security,reporting-services,ssrs-2008,connection-string,database-security,Security,Reporting Services,Ssrs 2008,Connection String,Database Security,我的问题更多地涉及其实施的安全性,而不仅仅是技术问题 我已经开发了所有的报告,并在报告服务器上。它们由使用ASP.NET中ReportViewer控件的应用程序使用 考虑到这些报表可能有不同的数据源,我在报表中为数据源创建了一个参数,并将connectionString应用程序作为参数发送到报表 到目前为止一切都很好,然而,这就是我的问题所在。因为我使用了一个ConnectionString,它的参数有一个用户和密码,所以这里不会有安全漏洞吗 我想征求您的意见,如果有人有更好的方法来实施,请告诉

我的问题更多地涉及其实施的安全性,而不仅仅是技术问题

我已经开发了所有的报告,并在报告服务器上。它们由使用ASP.NET中ReportViewer控件的应用程序使用

考虑到这些报表可能有不同的数据源,我在报表中为数据源创建了一个参数,并将connectionString应用程序作为参数发送到报表

到目前为止一切都很好,然而,这就是我的问题所在。因为我使用了一个ConnectionString,它的参数有一个用户和密码,所以这里不会有安全漏洞吗

我想征求您的意见,如果有人有更好的方法来实施,请告诉我。

也许会有帮助

文档中有一个非常清晰的示例,即连接字符串类似于:

="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks
这些允许您仍然传递一个参数来定义数据源,但它也允许您单独存储凭据,这样您就不必在调用报表时传递任何安全详细信息

在评论后添加:

下面是一个带有基于表达式的连接字符串的示例报告

您可以看到连接字符串使用一个参数来确定其连接的确切位置;这可以根据需要进行更新

凭证存储在数据源中;您可以存储凭据(请参见上面的屏幕截图),也可以选择任何其他适合的选项,例如Windows集成安全性

因此,它可能并不完全适合您,但这是针对这种可配置数据源需求的内置SSRS功能

第二次编辑:

在上面的示例中,
参数!ServerName.Value实际上是一个报表参数,您只需像其他参数一样创建它即可。根据报告的启动方式,可以将其设置为隐藏参数,并处理以代码形式发送的实际值;这只是一个实施的问题,真正取决于你

对于基于表达式的连接字符串,数据源必须存储在报表中,其连接字符串在运行时确定


因此,您可以根据一个或多个参数构建您所需的任何内容—您正在构建的只是一个字符串值,因此您可以根据自己的目的构建任何内容;您可以将其指向所需的任何服务器/数据库组合。如果这不能回答您的问题,请澄清。

但我将凭据放在哪里?这些凭据存储在数据源级别;请看上面的编辑。好的,很好。但是“Parameters!ServerName.Value”必须在报告中声明吗?我该如何设置报表的数据源,以便获取serverreport上的数据源?两者之间的联系,我无法理解。是的,我理解这个想法。但我试图在reportviewer中调用此数据源,但找不到该数据源。是一个共享数据源,不能在ssrs 2008上的共享数据源中放置参数。没错,您不能设计使用共享数据源,您需要使用嵌入式数据源。我认为这是有意义的,因为您正在使用报表参数,并且在共享数据源中,任何报表都可以使用它,因此无法保证所需的参数将存在。因此,这是您的实施决策;移动到嵌入式数据源模型或继续在报告中传递凭据。