2012-07-31 84 views
4

这是我的场景:我已经将SSRS 2008 R2与SharePoint 2010集成在一起运行。 一切正常,因为我可以创建数据源,模型(可以通过工作室或通过“生成模型”选项ECB用于报告库中的数据源)。我的数据源正在使用一个专用的SQL帐户和存储的凭据选项。我的模型专门隐藏了一些列,以便我的报表生成器3.0用户无法访问它们(请考虑这些敏感列)。SSRS在SharePoint集成模式和报告模型安全性 - 安全漏洞?

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

所以这里是我的问题:微软意味着报告模型项目安全性可以用来防止用户访问模型中的某些实体(因此术语“报告模型项目安全性”)。 但是,如果用户只需使用自己创建的报表库中的SharePoint UI创建自己的模型,并指向它们必须具有读取访问权限的数据源(.rsds文件),那么这不是一种安全性缺陷?

+3

你给你的用户直接读取你的数据库。他们可以简单地在Excel中导入整个数据库。安全漏洞在哪里?你明确地给了他们这样做的权利。 – 2012-08-24 18:52:46

回答

1

“我的数据源是使用专用的SQL帐户” [...] “数据源(它们只具有读取访问他们”。用户有读访问数据源,这意味着用户可以用数据源提供的数据做任何他想要的事 - 不管你设置了什么样的模型

没有安全缺陷,但是在你的设计中存在缺陷一旦你使用专门的帐户访问外部数据库,你只需要该账户的安全性,你需要使用模拟将用户的凭证传递给数据库,这样他才能看到他应该看到的东西,这当然会打开另一个蠕虫因为您不希望将所有SharePoint用户都视为数据库用户。这只会让您选择三:让数据库能够在某种安全查找数据库中查找用户,这当然是一个自定义解决方案。

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