gpt4 book ai didi

oracle - 无法在 Oracle 模式之间交换分区。 ALTER TABLE EXCHANGE 受到细粒度安全性的限制。领域违规...豁免访问政策

转载 作者:行者123 更新时间:2023-12-02 04:27:20 24 4
gpt4 key购买 nike

我有一个有效的 Oracle 过程,它执行以下操作:

  1. 从源表中选择分区
  2. 将此分区中的记录插入到交换表中。 (交换表的设计/结构与源代码一致)
  3. 修改交换表中的记录。
  4. 执行“交换分区”以将交换表中的记录交换回源。

当过程和所有表都处于同一架构中时,这非常有效:(INBOUND)

但是...下一步是让它使用另一个架构中存在的源表:WAREHOUSE

现在在 Exchange 分区步骤上失败:

Alter Table WAREHOUSE.ITEM_FCT Exchange Partition SYS_ABCD WITH TABLE INBOUND.ITEM_SWP Including     
Indexes Without Validation;

SQL 错误:ORA-14136:ALTER TABLE EXCHANGE 受细粒度安全性限制14136. 00000 - “ALTER TABLE EXCHANGE 受细粒度安全性限制”*原因:由于 VPD,进行交换的用户没有全表访问权限 政策。*操作:向该用户授予豁免权限。

我尝试根据谷歌研究添加所需的权限:

grant ALL on INBOUND.ITEM_SWP TO WAREHOUSE;
grant EXEMPT ACCESS POLICY to INBOUND;

当我尝试授予豁免访问策略时,它显示:

grant EXEMPT ACCESS POLICY to INBOUND
Error report -
SQL Error: ORA-47410: Realm violation for GRANT on EXEMPT ACCESS POLICY

我将非常感谢任何指导。将所有内容都放在 WAREHOUSE 模式中绝对是最后的手段。

谢谢!

最佳答案

您无法对启用了 FGAC 策略的表应用交换分区操作。 Oracle 引用中描述了此限制。您需要禁用策略,应用操作并再次重新启用它。然而,这并不是理想的选择,因为在短时间内您的数据将不受策略保护。

关于oracle - 无法在 Oracle 模式之间交换分区。 ALTER TABLE EXCHANGE 受到细粒度安全性的限制。领域违规...豁免访问政策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999389/

24 4 0