OBIEE 12c 中的部分访问
Posted
技术标签:
【中文标题】OBIEE 12c 中的部分访问【英文标题】:Section Access in OBIEE 12c 【发布时间】:2020-11-09 15:50:51 【问题描述】:我正在尝试在 OBIEE 12c 中实现部分访问。我参考了一个博客并按照实施部分访问的步骤。但最终结果并不如预期。
博客链接:http://bisimplified.blogspot.com/2014/06/obiee-11g-datarow-level-security.html
首先我创建了“User_1”并将该用户分配给“BI Consumer”应用程序角色。
我只想向“User_1”显示某些数据。
创建初始化块。 这是我用来定义初始化块(数据源)的 SQL 语句:
select pc.category_name from dim_category ft , product_categories pc where ft.category_id=pc.category_id and lower(ft.username) = lower(':USER') .
(创建初始化块的屏幕截图)
我将“默认”(字符串)分配给默认初始化程序并检查“按行初始化”和“使用缓存”(初始化块(我们正在处理的块)-> 编辑变量目标-> 新建(变量) ) .
(创建的会话变量的屏幕截图)
否则,如果 Default Initializer 为空,则在将 Section 变量分配给应用程序角色/用户时会提示错误。
(如果 Default Initializer 留空并尝试将该 Section 变量分配给 Application Role / User 时的错误消息屏幕截图)。
会话变量有什么可做的吗?
之后,我将此会话变量分配给“BI Consumer”应用程序角色。
(将会话变量分配给“BI 消费者”应用程序角色的屏幕截图)
我请求对 OBIEE 12c 中的“实施部分访问”提出建议,或者如果您想在上述步骤中添加任何内容,请纠正我。
【问题讨论】:
你的问题很不清楚。您在询问“部分访问”,但没有显示您对部分所做的任何事情,只是数据。您真正想要实现的目标是什么? 嗨,克里斯,谢谢您的回复。我试图根据条件限制用户的数据。例如,User_1 应该能够单独查看“CPU”和“Video Card”类别的数据。要过滤的数据在“Dim_category”表中给出。所以我必须从 "Product_Categories" 中过滤数据。我希望您现在清楚我正在尝试实施的方案。如果不能,请您如何在 OBIEE 中实现部分访问。 这是行级访问,而不是“部分控制”。如果您追求行级访问权限,那么为什么不发布您尝试实现它的位置和方式的屏幕截图? 感谢您的回复,克里斯。我想根据我拥有的表来实现部分访问,即。限制 Source 中给定的每个用户的数据。例如,User_1 可以查看将在 Source Table 中给出的“CPU”和“Storage”类别。使用该源表,我试图动态限制用户的数据。如果我对“部分访问”有误解,请纠正我。 我做到了。多于。 “节控制”与“行级安全”无关。 “部分控制”控制部分,正如其名称所明确指出的那样。这意味着它控制显示作为仪表板一部分的“部分”。 “行级安全性”控制为哪个用户或应用程序角色获取哪些行。我认为您想要第二个,但请准确确认您想要什么,因为您一直使用错误的术语,这没有帮助。 【参考方案1】:一般知识的综合答案:“部分访问”是用词不当。意图是“行级安全”。
上述查询中提到的问题主要源于“:USER”的使用,这很可能是“weblogic”并且谁拥有/没有该查询的数据。 查询必须使用实际带回数据的用户帐户进行验证。
其次,由于查询设置为按行初始化,因此它必须返回代表变量名称和实际值的值对。 Section_Variable |甲类 Section_Variable | B类 等等
所以 SQL 必须拉取
选择 'Section_Variable', ft.category_name 从 .....
【讨论】:
以上是关于OBIEE 12c 中的部分访问的主要内容,如果未能解决你的问题,请参考以下文章
从 OBIEE 12c 仪表板将参数传递给 OBIEE 12c rpd 中的存储过程