我有不同的Active Directory组和一个BO Universe。 不同的活动目录组应对Universe中的数据具有不同的受限访问权限。 我该如何实现呢? (遗憾的是,我没有在网上找到相应的教程或文档。) 如果有多种方法可以实现数据访问,那么最佳做法是什么? 感谢。
答案 0 :(得分:3)
在Universe中实现行级安全性有两种主要方法。一个是通过安全配置文件;另一个是通过@variable('BOUSER')
。
如果要在组级别应用安全性(即,组的所有成员应该应用相同的条件),则安全配置文件是适当。这将在IDT User Guide的第17章中介绍。在较高的层面上,步骤是:
应用行级安全性的另一种方法仅适用于数据源包含一个表,该表具有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,那么他们将在上面覆盖过滤逻辑。为确保安全,用户应被剥夺此权利。