我已经在Asp.net网站上创建了一份SSRS报告。报告接受服务器,数据库,用户和密码以动态创建连接字符串。动态连接字符串是必需的,因为用户可以在登录时选择数据库,并且该数据库需要用于SSRS。
一个要求是用户应该能够自己创建SSRS报告。为此,我提供了如何创建需要数据源动态连接字符串的参数的指南。
我认为一个可能的问题是,如果用户不将参数设置为隐藏,他将以明文形式提供数据库凭证。
我想在asp.net网站上添加加密并在SSRS报告中解密,但在设计时可以轻松访问解密功能/代码。
知道如何克服这种情况吗?
答案 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
。