为什么FGA Oracle会捕获错误?
我正在尝试对具有特殊用户的表进行审核。从为什么FGA Oracle会捕获错误?,oracle,Oracle,我正在尝试对具有特殊用户的表进行审核。从系统写入: BEGIN DBMS_FGA.add_policy ( object_schema => 'system', object_name => 'my_fga_table', policy_name => 'my_fga_policy_1', statement_types => 'SELECT, INSERT, DELETE, UPD
系统
写入:
BEGIN
DBMS_FGA.add_policy (
object_schema => 'system',
object_name => 'my_fga_table',
policy_name => 'my_fga_policy_1',
statement_types => 'SELECT, INSERT, DELETE, UPDATE',
audit_condition => 'USER=''REFEREE_1'' OR USER=''REFEREE_2'''
);
END;
从裁判员\u 1
我试图更改表格:
UPDATE SYSTEM.my_fga_table SET points=90 WHERE boxer_name='BOXER_1';
Oracle回答:
Error starting at line : 1 in command -
UPDATE SYSTEM.my_fga_table SET points=90 WHERE boxer_name='BOXER_1'
Error at Command Line : 1 Column : 15
Error report -
SQL Error: ORA-28138: Error in Policy Predicate
28138. 00000 - "Error in Policy Predicate"
*Cause: An invalid policy predicate was specified.
*Action: Please specify a valide policy Predicate for the FGA policy
问题是什么?第六点:
audit\u条件
必须是一个布尔表达式…[段落的其余部分被截断]
表达式不能使用AND和OR等运算符组合条件
问题是您正在使用或组合两个条件
似乎您必须创建两个策略,一个策略的audit\u条件设置为'USER='referer\u 1'
,另一个策略的条件设置为'USER='referer\u 2'
最后,请不要在系统
模式或其他内置Oracle模式中创建对象。如果您一直这样做,Oracle可能会拒绝支持您。很高兴了解dbms\u fga
,但您知道它与dbms\u rls
包有什么不同吗?我在搜索时没有得到足够的信息。提前谢谢。@Sujitmohanty30:如果你有单独的问题要问,请问单独的问题。谢谢你的回答。是的,这是个好主意,但我已经想好了。