解除OU屏蔽(EBS检查无法直接查询解决)

编程入门 行业动态 更新时间:2024-10-17 09:54:54

解除OU<a href=https://www.elefans.com/category/jswz/34/1750404.html style=屏蔽(EBS检查无法直接查询解决)"/>

解除OU屏蔽(EBS检查无法直接查询解决)

解除OU屏蔽(EBS检查无法直接查询解决)


具有OU屏蔽的例子

SELECT t_id, t.*  FROM po.po_headers_all t  -- 无屏蔽表,在PL/SQL运行有数据
SELECT t_id, t.*  FROM apps.po_headers t     -- 包含OU屏蔽,在PL/SQL中查询无数据

多组织屏蔽原理

1. 在PO Schema 上创建一张表, 命名为 PO_HEADERS_ALL2. 在APPS schema 上创建一个同义字(synonym) PO_HEADERS_ALL , 指向 PO.PO_HEADERS_ALL3. 在APPS 中别一个同义字(synonym) 被创建: PO_HEADERS, 指向 PO_HEADERS_ALL4. 通过使用 MO_GLOBAL.ORG_SECURITY, 行级别的安全被应用于 PO_HEADERS.5. 这个可以通过运行 SQL select * from all_policies where object_name='PO_HEADERS' 来再次确认6. 这个策略的影响是无论何时当你访问 PO_HEADERS 时, Oracle RLS 会动态的扩展WHERE 条件语句,如SELECT * FROM PO_HEADERS WHERE EXISTS (SELECT 1 FROM mo_glob_org_access_tmp oa WHERE oaanization_id = 		org_id)

通过模拟登录使apps.po_headers在PL/SQL中可以查询到数据

BEGINfnd_global.apps_initialize(user_id      => 0 /* FND_GLOBAL.USER_ID*/, -- 请求提交用户IDresp_id      => 56736, -- 请求提交职责IDresp_appl_id => 222); -- 职责应用mo_global.init('M');
END;SELECT * FROM mo_glob_org_access_tmp;

其中apps_initialize参数可以通过如下步骤获取值:

  1. 帮助->诊断->检查

  2. “块”中填写值:profiles

  3. 在字段里分别填写:user_id、resp_id、resp_appl_id获取值

  4. 模拟登录完以后,就可以在PL/SQL中运行查询语句

SELECT t_id, t.*  FROM apps.po_headers t     -- 模拟登录以后,查询包含数据

更多推荐

解除OU屏蔽(EBS检查无法直接查询解决)

本文发布于:2023-12-07 03:46:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1670001.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:屏蔽   OU   EBS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!