ORA-30372: fine grain access policy conflicts with materialized view
Cause: A fine grain access control procedure has applied a non-null policy to the query for the materialized view.
Action: In order for the materialized view to work correctly, any fine grain access control procedure in effect for the query must return a null policy when the materialized view is being created or refreshed. This may be done by ensuring that the usernames for the creator, owner, and invoker of refresh procedures for the materialized view all receive a null policy by the user-written fine grain access control procedures.
ORA-30372: 这是一个ORACLE错误,出现这个错误表示,当在你设置了细粒度访问策略(FINE GRAIN ACCESS POLICY)的环境中再次创建一个新的材料视图(MATERIALIZED VIEW)时会发生冲突。
案例:比如多伦多的投资银行可能对内部的某些财务数据进行细粒度的访问控制,以防止对这些数据进行非法访问,而同时也可能需要创建一个材料视图,以便查看总体财务数据。但是,由于材料视图受到细粒度访问策略的保护,因此创建材料视图时可能会遇到这个错误。
解决方法:在解决这个问题之前,必须先分析出导致这个错误出现的具体原因。一般来说,要使用“UPGRADE FINE GRAIN ACCESS POLICY”来解决这个问题。该命令可以更新现有的细粒度访问策略,以便不再与材料视图发生冲突。另外,可以使用“ALTER MATERIALIZED VIEW”命令避免访问材料视图时出现这个错误。还可以使用“REFRESH FINE GRAIN ACCESS POLICY”命令刷新现有的细粒度访问策略,以便 重新启用细粒度访问策略,以避免三方材料视图冲突。最后,可以使用“ALTER SYSTEM SET”命令来重置访问策略。