暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle FGA审核-当FGA位于表列上并且该列位于视图中并且选择了其他视图列时,如何避免误报?

askTom 2017-10-26
199

问题描述

我是FGA审核的新手,并且为表T列SSN上的SELECT创建了FGA策略。这很好。专门选择列T.SSN的任何用户,在我的审计表中生成一行。(我正在使用DB 11.2.0.4)

从T中选择T.SSN; -- 生成审计行
从T中选择 *; -- 生成和审计行

然后我创建了一个具有2个表列的视图V。其中一个表列是T.SSN,另一个是T.DOB。
所以我的观点只有两列,V.SSN和V.DOB

所以现在如果我查询视图V:
从V中选择V.SSN; -- 按预期生成审计行
从V中选择 *; -- 按预期生成审计行

现在是假阳性!!
从V; 中选择V.DOB; -- 生成审计行。非常出乎意料。用户实际上从未选择过SSN列,但是由于用户正在通过恰好包含SSN的视图进行查询,因此FGA会审核选择。

有没有一种方法可以防止这种误报,同时仍将SSN列保留在视图中?

以前有人遇到过吗?


提前感谢您提供的任何建议。
鲍勃


专家解答

这在MOS注释2233726.1中有记录。一个视图只是存储的文本,所以从概念上你的查询:

从V中选择dob

可以在内部表示为:

选择dob
(从T中选择ssn,dob);

因此,您正在 “引用” ssn。


解决方法是将FGA策略放在视图上,而不是表格上。因此

当前
=
带有审计政策的表T
将V视为从T中选择2个cols

提议的
==
表T (重命名为HIDDEN_T)
将T视为select * fin HIDDEN_T,FGA策略
查看V作为从HIDDEN_T、FGA策略中选择2个cols

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论