如何使用 #Oracle的VPD

Posted 甲骨文中国培训服务

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用 #Oracle的VPD相关的知识,希望对你有一定的参考价值。

点击上方 “公众号” 可以订阅哦!
如何使用 #Oracle的VPD

虚拟专用数据库 (VPD) 也被称为细粒度访问控制,Fine Grained Access Control 当您查看相关的详细文档时,刚一开始可能看上去非常复杂。 本文为您提供了一个简明扼要的例子,以方便您入门。下面的演示使用的是12c多租户架构,但其原理与11g相同 :

如何使用 #Oracle的VPD

Say this is a reporting system with a central table that is used for monthly and daily reports. We have separate users for the daily and monthly reports.
Initially, they see both kinds of entries in the table:

这是一个带有中心表的报告系统,用于月度和日常报告。查看日常和月度报告的用户并不相同。 首先,他们在表中都能看到两种条目:

如何使用 #Oracle的VPD

VPD enables both users to keep the same statement but they see only rows for monthly respectively daily frequency:

VPD 使两种用户保持相同的语句,但是只显示月度行以及各自的日常频率:

如何使用 #Oracle的VPD

This is possible because VPD silently attaches a WHERE condition to the seemingly unchanged statement:

这是可行的,因为VPD默认地将WHERE条件附加到似乎没有变化的语句中

如何使用 #Oracle的VPD

The VPD policy adds that WHERE condition depending on the session user. Funny effect:

VPD策略根据会话用户添加了WHERE条件。产生的效果很有趣:

如何使用 #Oracle的VPD

SYS is not subject to this policy, because of his privilege EXEMPT ACCESS POLICY:

SYS不受此策略的约束,因为它有EXEMPT ACCESS POLICY特权:

如何使用 #Oracle的VPD

对于初学者来说这些就足够了。如果与上面的简单示例不一样,并没有不同的数据库用户,那么情况就会变得尤其复杂。这时通常就要使用应用上下文,而这个主题可以写成另一篇文章。 
 

微博:@甲骨文大学官微

微信:@甲骨文中国培训服务

优酷:@甲骨文大学

Learn Oracle

From Oracle

长按二维码关注

以上是关于如何使用 #Oracle的VPD的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 中的 VPD(虚拟私有数据库)[关闭]

[精]Oracle VPD详解(虚拟专用数据库)

EBS VPD介绍和使用实例

EBS VPD介绍和使用实例

使用VPD解决EBS中信息屏蔽问题

oracle_使用udev绑定磁盘方法