OBIEE 12.2.1.3.0用户浏览历史分析报表创建及权限问题咨询
解决OBIEE 12.2.1.3.0用户浏览历史报表的方案
嗨,我来给你分享几个实用的方案,帮你不用给部门经理开管理员权限就能做出用户浏览历史分析报表:
1. 启用OBIEE审计仓库(最推荐的方案)
OBIEE本身自带审计功能,只是默认可能没开启,开启后会把用户登录、报表访问等行为数据存在BI平台的数据库schema里,你可以基于这些数据自定义主题区域给普通用户使用:
步骤1:开启审计策略
- 登录Oracle Enterprise Manager(EM),找到你的OBIEE实例
- 进入Security > Audit Policy,勾选你需要审计的事件:比如
User Login/Logout(获取登录时间)、Report Execution、Dashboard Access(获取浏览信息) - 保存设置,OBIEE就会开始记录这些行为数据
步骤2:访问审计数据库表
审计数据默认存在BI Platform的数据库schema中(通常命名为BIPLATFORM),核心表有:
S_AUDIT_EVENT:记录所有审计事件,包含事件类型(登录/报表访问等)、事件时间、用户ID等S_AUDIT_USER:关联用户ID和用户名、部门等信息S_AUDIT_OBJECT:关联被访问的对象(报表、仪表盘的名称、路径等)
你可以直接查询这些表获取所需数据,比如查询用户最后登录时间:
SELECT au.user_name, MAX(ae.event_time) AS last_login_time FROM S_AUDIT_EVENT ae JOIN S_AUDIT_USER au ON ae.user_id = au.user_id WHERE ae.event_type = 'User Login' GROUP BY au.user_name
步骤3:创建自定义Subject Area
用OBIEE Administration Tool工具:
- 新建物理层连接,连接到存储审计表的数据库
- 导入上述审计表,构建逻辑层模型(关联表关系、定义维度和度量,比如用户维度、访问时间度量、访问对象维度等)
- 创建新的Subject Area,发布到OBIEE服务器
- 给部门经理分配这个Subject Area的访问权限,这样他就能直接用这个主题区域做报表,不需要管理员权限
2. 其他备选方案
- REST API获取会话/审计数据:OBIEE提供了REST API可以获取会话和审计信息,比如
/analytics/saw.dll?REST/v1/audit/events,不过这个需要你编写脚本或者工具去拉取数据,再导入到OBIEE的数据源中,适合有开发能力的场景 - 检查现有隐藏主题区域:部分OBIEE环境可能有内置的审计主题区域(比如
BI Platform Administration),你可以在RPD里搜一下,如果有的话,直接给部门经理分配这个主题区域的权限即可,但默认可能没有开启
注意:开启审计后,要定期清理审计数据,避免数据库存储空间不足;自定义Subject Area时,要做好权限控制,确保普通用户只能看到自己权限范围内的用户数据(比如部门经理只能看自己部门用户的浏览历史)
内容的提问来源于stack exchange,提问作者mostafa.S
相关产品推荐
相关产品推荐

