保护SSRS报告参数

时间:2015-10-01 12:24:41

标签: reporting-services ssrs-2008-r2

我已经在Asp.net网站上创建了一份SSRS报告。报告接受服务器,数据库,用户和密码以动态创建连接字符串。动态连接字符串是必需的,因为用户可以在登录时选择数据库,并且该数据库需要用于SSRS。

一个要求是用户应该能够自己创建SSRS报告。为此,我提供了如何创建需要数据源动态连接字符串的参数的指南。

我认为一个可能的问题是,如果用户不将参数设置为隐藏,他将以明文形式提供数据库凭证。

我想在asp.net网站上添加加密并在SSRS报告中解密,但在设计时可以轻松访问解密功能/代码。

知道如何克服这种情况吗?

1 个答案:

答案 0 :(得分:1)

我建议OP应阅读以下文件:
Specify Credential and Connection Information for Report Data Sources

这是OP的评论:

  
      
  • 提示用户提供凭据:不可能,因为某些用户可以使用提供的网站用户/密码查看报告。他不会想到DB。

  •   
  • 存储凭据:不可能,因为用户将在登录时通过选择的数据库查看网站和报告中的数据。数据库选择选项在登录网站时给出,因为会有多个数据库。因此,一个报告将根据用户选择的数据库显示不同的数据。

  •   
  • 使用Windows集成安全性:不可能,因为我们的大多数客户端都不允许使用集成安全性进行数据库访问。我们需要使用他们提供的凭据进行所有数据库访问。

  •   
  • 不使用凭据:我们需要使用客户端提供的凭据进行所有数据库访问。如果我错过了那篇文章的内容,请纠正我

  •   

这是我对所提问题的回答和答案:

您需要用户登录您的网站,一旦用户登录,您应该能够知道该用户是谁。这也意味着您可以授予用户对您的应用程序的特定权限/访问权限 因此,您可以使用Stored Credentials,更具体地说,使用Integrated Security

Type                 |  Context for network connection  |  Data Source
-------------------- | -------------------------------- | -----------------
Integrated security  |  Impersonate the current user    | For all data source types, connect using the current user account

我相信以下文档可能正是您正在寻找的内容 How to: Secure Connection Strings When Using Data Source Controls

我强烈建议创建一个包含数据的新表,该数据指定不同的访问级别,然后与用户表建立联结表。这样可以轻松确定哪个用户可以访问哪个报告,并且可以轻松实现Integraded Security