在创建细粒度审计(FGA)时,请对使用到的参数多加留意,防止因一时疏忽带来的使用不便。
• 如果审计条件语法无效,则访问审计的对象时会出现ORA-28112错误
晚上 9点多创建了一个 fga审计 命令如下:exec dbms_fga.add_policy('SCOTT','EMP','FGA1','dempno=10','sal',enable=>true);
这里是成功创建了的。
然后scott下用户的emp表无法查询 提示错误:ORA-28112: 无法执行策略函数。其他表都可以查询。
确定是审计的问题,原来是我写错语句了 ,⊙﹏⊙b汗 粗心哪 真不该 !
删除之前的:exec dbms_fga.drop_policy('SCOTT','EMP','FGA1');
重新创建:
exec dbms_fga.add_policy('SCOTT','EMP','FGA1','deptno=10','sal',enable=>true);
创建细粒度审计是成功了,但列名错了冲突,fga要对emp表进行审计,对不上号,就会报错。
列名错了,fga也能创建,但是就会和emp表的列名冲突,从而报这个错误,这也是为什么普通用户无法访问emp的原因
小结
本文给出的这个问题原因是简单的,但是往往平时就是由于这一类所谓“简单问题”浪费了我们大量宝贵时间。
如何防止出现此类问题的发生呢?答案很简单:细心、细心、还是细心!