【问题标题】:Data Access in BusinessObjects through Active Directory Groups通过 Active Directory 组访问 BusinessObjects 中的数据
【发布时间】:2013-11-05 21:59:44
【问题描述】:

我有不同的 Active Directory 组和一个 BO Universe。 不同的 Active Directory 组应该对 Universe 中的数据具有不同的受限访问权限。 我该如何实施? (很遗憾我在网上没有找到相应的教程或文档。) 如果实现数据访问的方法不止一种,最佳实践是什么? 谢谢。

【问题讨论】:

  • BO 的哪个版本?如果是 BI4,您使用的是 IDT 还是 UDT?您是在寻找行级安全性(所有用户都可以看到所有 Universe 对象,但某些行被组过滤掉)还是列级(Universe 中的对象仅对某些组可见)?跨度>
  • 感谢您的反馈,乔。我正在使用 BO 4,IDT。我仍在等待有关其他问题的反馈,并会在我恢复它时回复您。同时,我可以查找一些 youtube 教程或文档吗?
  • IDT 用户指南是here。有关应用安全限制的信息,请查看第 17.4 和 17.5 节。
  • 嗨@Joe - 刚刚收到反馈:应该实施行级安全性。

标签: business-objects business-objects-sdk


【解决方案1】:

在 Universe 中实现行级安全性有两种主要方法。一种是通过安全配置文件;另一个是通过@variable('BOUSER')

如果要在 级别应用安全性(即,组的所有成员都应应用相同的条件),则 Security Profile合适的。这在IDT User Guide 的第 17 章中有介绍。概括地说,步骤是:

  • 从 IDT 启动安全编辑器
  • 选择 Universe,然后创建 Data Security ProfileBusiness Security Profile(请阅读文档了解两者之间的差异,但其中一个是DSP,您将编写 WHERE 条件;使用 BSP,您可以选择对象并定义条件)
  • 创建安全配置文件后,选择它应该应用到的一个或多个组
  • 对应该应用限制的每个组重复上述操作

仅当数据源包含的表具有 BO 用户 ID 到他们可能有权访问的值的映射时,应用行级安全性的另一种方法才适用。例如,假设您的数据源中有一个如下所示的安全表:

user_id  region
-------  ------
U123     NE
U123     SE
U321     W

你的事实表看起来像:

pk   region   value
__   ______   _____
 1       NE       3
 2        W       4

您可以应用安全性,使用户 U123 只能看到“NE”行,而用户 U321 只能看到“W”行。您将加入区域 (security.region=fact.region) 上的两个表,然后在 security.user_id=@variable('BOUSER') 上创建一个新的强制过滤器。这将强制将过滤器应用于所有查询。

请注意,上述两种方法都是通过向查询的 WHERE 条件添加条件来工作的。如果您的用户有权查看和编辑查询的 SQL,他们将在上面覆盖过滤逻辑。为确保安全,用户应被剥夺此权利。

【讨论】:

  • 还有一个问题 - 在 CMC 中,我是否必须创建一个用户组,然后在该组中添加成员,或者我可以简单地创建具有某些用户的 Active Directory 组,然后将此 AD 组分配给特定的数据安全轮廓?哪个选项更好?
  • 映射 AD 组必须更容易——请参阅 CMC 中的“身份验证”部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 2011-11-05
  • 1970-01-01
  • 2021-08-03
相关资源
最近更新 更多