通过Active Directory组在BusinessObjects中进行数据访问

时间:2013-11-05 21:59:44

标签: business-objects business-objects-sdk

我有不同的Active Directory组和一个BO Universe。 不同的活动目录组应对Universe中的数据具有不同的受限访问权限。 我该如何实现呢? (遗憾的是,我没有在网上找到相应的教程或文档。) 如果有多种方法可以实现数据访问,那么最佳做法是什么? 感谢。

1 个答案:

答案 0 :(得分:3)

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

如果要在级别应用安全性(即,组的所有成员应该应用相同的条件),则安全配置文件是适当。这将在IDT User Guide的第17章中介绍。在较高的层面上,步骤是:

  • 从IDT启动安全编辑器
  • 选择Universe,并创建数据安全配置文件商业安全配置文件(阅读文档以了解两者之间的差异,但其中一个是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,那么他们将在上面覆盖过滤逻辑。为确保安全,用户应被剥夺此权利。