0

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

4

1 回答 1

3

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

如果要在级别应用安全性(即,组的所有成员都应应用相同的条件),则安全配置文件是合适的。IDT 用户指南的第 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,他们将在上面覆盖过滤逻辑。为确保安全,用户应被剥夺此权利。

于 2013-11-07T15:52:33.280 回答