4

这是我的场景:我让 SSRS 2008 R2 在与 SharePoint 2010 的集成模式下运行。一切都按预期工作,因为我可以创建数据源、模型(通过工作室或通过 ECB 上的“生成模型”选项)报表库中的数据源)。我的数据源正在使用带有存储凭据选项的专用 SQL 帐户。我的模型专门隐藏了几列,因此我的报表生成器 3.0 用户无权访问它们(考虑这些敏感列)。

我发现虽然用户无法编辑我的模型或数据源(他们只有读取权限),但他们可以(从他们拥有贡献权限的另一个报表库)创建一个新的报表模型(来自 SharEPoint ) 并简单地将 url 传递到我在我的库中为它们设置的报告数据源。一旦他们这样做了,他们最终会得到一个没有我在锁定模型中设置的任何隐藏列的模型。该模型也没有我应用的任何模型项安全设置——它是一个仅使用数据源的全新模型。

所以这是我的问题:微软暗示报告模型项安全性可用于防止用户访问模型中的某些实体(因此称为“报告模型项安全性”)。但是,如果用户可以使用 SharePoint UI 从他们自己创建的报表库中简单地创建自己的模型,并指向他们必须具有读取权限的数据源(.rsds 文件),这不是一个安全漏洞吗? ?

4

1 回答 1

1

“我的数据源正在使用专用的 SQL 帐户” [...] “数据源(他们只有对它们的读取权限”。用户对数据源具有读取权限。这意味着用户可以使用提供的数据做任何他想做的事情通过该数据源 - 无论您设置什么模型。

没有安全漏洞,但您的设计存在缺陷。一旦您使用专用帐户访问外部数据库,您就只有该帐户的安全性。您需要使用模拟将用户的凭据传递给数据库,这样他就只能看到他应该看到的内容。这当然会打开另一个蠕虫罐,因为您不想让所有 SharePoint 用户都成为数据库用户。这让您只剩下选项三:让数据库能够在某种安全查找数据库中查找用户,这当然是一个自定义解决方案。

现在,您正在使用“默默无闻的安全”方法。您为用户提供了一个具有某些“权限”或隐藏列的模型,但底层数据源为用户提供了所有数据(甚至是隐藏的东西)。是什么阻止了用户使用他们拥有读取权限的数据源?没有什么...

于 2012-11-19T07:10:55.567 回答