【问题标题】:Reporting Services User as a User Permission Key - Row level permission SSRSReporting Services 用户作为用户权限键 - 行级权限 SSRS
【发布时间】:2018-05-11 12:04:45
【问题描述】:

我想为 Reporting Services 中的报表创建行级别权限。我想为特定用户提供对数据的特定访问权限 - 项目。项目经理只能读取其项目的数据。

我希望使用 SS Reporting Services 用户来限制它。我只有一个用户——“reportviewer”,他可以访问 sql 并且不想在 sql 数据库中创建更多用户。

但我有问题,我不知道如何使用 SS Reporting Services 用户(登录类似于 SERVERNAME\UserName)。 我知道我必须有一个像下面这样的访问权限表:

用户登录项目

服务器名称\Matthias Project12

服务器名称\Matthias Project13

服务器名称\Tommy Project14

我不想在我的 SQL 视图中有对用户有限制的代码。类似的东西

  Where 
   (a.NrProjektu in (Select NrProjektu From tbn.SSRSRaportyDostepView Where LoginUser=USER_NAME() ) OR
        IS_ROLEMEMBER('db_owner') = 1 OR
        IS_SRVROLEMEMBER('sysadmin') = 1
        )

但是当我检查 USER_NAME() 时,它就像“dbo”。据我了解,这个“USER_NAME()”指的是 sql 用户。

我希望有一些可以在 Reporting Services 报告中使用的连接,例如“Where UserName=@ReportUser”。我不知道如何在 SQL 中实现。

【问题讨论】:

  • 您能否删除帖子中的故事问题/背景部分并将您的实际问题合并为一个直接/简洁的问题?这是一种大量的阅读/分析/解释,以要求有人在业余时间免费帮助您。如果您知道官方文档的链接以支持您的假设所依据的任何陈述,请将这些链接嵌入为超链接。等等。让那些试图免费帮助你的人更容易阅读/消化。
  • 例如,我认为这篇文章的大部分内容没有意义。我几乎认为您可以在调用 USER_NAME() 的地方直接粘贴一些 SQL,并显示它输出“dbo”,然后询问“WTF?”带有指向某些文档的链接,表明它应该是其他东西。
  • 嗨,贝恩,谢谢您的意见。我把我的描述加长了,因为它开始获得负分。一开始它很短。我认为这个案例更复杂,人们不知道我的意思(我想实现当前报表用户的 ReportServer 登录,实际上在 SQL 视图中呈现特定报表。)我想避免我知道的解决方案,即实现行在报告中使用用户参数的级别权限。但毕竟我让自己确认感谢@niktrs 这个解决方案还不错。毕竟我按照他的建议做了。我很感激。
  • 我的建议仍然有效。您的帖子很难快速理解。如果您认为上下文对读者有帮助(我同意,有时确实如此),您仍然可以在帖子底部添加背景,但您的帖子的核心应该更直接,而不是漫无边际。无论如何,我很高兴你得到了答案,但正如你所看到的,你的问题不会被你身后的任何人重复使用。
  • 另外,我想指出您的帖子应该包含您已经真正想到或尝试过的内容,以及为什么您认为这不能回答您的问题。这样做可能会让你获得更多的支持、更多的理解和更直接的保证,即你的解决方案实际上是最好的;或者看到您尝试过,它可能已经改变了@niktrs 的答案。在任何方面,它都会在其他人回答您之前大大提高您问题的可重用性。

标签: sql-server reporting-services


【解决方案1】:

创建一个参数,例如。 usr 并将其设为内部。

设置参数表达式= User!UserID

在您的数据集上,使用用户参数过滤用户权限表,加入项目数据表,如下所示

SELECT p.*
FROM ProjectData AS p
INNER JOIN UserPermissions AS u ON p.project = u.project 
WHERE u.username = @usr

【讨论】:

  • 谢谢。这是我理解的解决方案,但我正在寻找不同的东西。我使用一个程序来生成要报告的数据。我想我可以在我的源视图中实现一个代码,该过程从中获取数据。这将帮助我避免在每个报告中从一个视图共享数据的权限下实施代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-06
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多