【发布时间】:2013-02-13 12:32:22
【问题描述】:
场景:Oracle 11g 数据库包含一些敏感的用户数据,如果泄露给错误的一方可能会导致法律责任。
想要的效果:只有某个用户,从某个IP连接,才能看到包含此敏感用户数据的列
我不确定 隐藏列 或 虚拟列 是否是正确的方法。 细粒度的访问控制似乎可以提供帮助。我不确定什么是最好的解决方案。 IP的限制大概是在监听器级别完成的吧?
问题: 我们如何限制列的可见性,使其仅对特定用户可用?所有其他用户都不会看到该列,即使在执行“DESC TABLE_WITH_SENSITIVE_DATA”时也不会
感谢您的任何提示。
【问题讨论】:
-
虚拟列完全不是这样。它用于在表中直接计算列,而不是使用视图
-
FGAC 可以隐藏 DATA 列(或整行),但不能隐藏列本身,也不能将其隐藏在
DESC中。您必须拥有视图才能完全隐藏列,然后只授予用户访问视图的权限。 -
当您说“只有某个用户,从某个 IP 连接”时,您真的希望数据库强制执行连接 IP 吗?您是否就此咨询过您的网络管理员?
-
另一个问题:您信任您的 DBA 还是希望对他们(以及类似的高级用户)屏蔽数据?
-
我认为我对相关问题的回答涵盖了所有基础:stackoverflow.com/a/2230413/146325
标签: oracle security privacy tns