行级安全策略添加的谓词不会显示在10046跟踪文件中。一个建议是使用10053(优化器)跟踪来查看VPD谓词,但很难在另一个会话中设置给定会话上的10053跟踪。
还有其他方法可以查看RLS策略添加了哪些谓词吗?
场景:RLS策略应用于会话#1中的查询。我们需要分析会话#2中会话#1中发生的事情。
数据库10g是Oracle 10g。
答案 0 :(得分:2)
您需要有权访问V$VPD_POLICY的用户。默认情况下,这只是SYSDBA用户,因此您可能需要DBA授予您对视图的访问权限。视图将谓词绑定到SQL语句。您需要从V $ SQLAREA获取SQL_ID,因为它为您提供了ADDRESS,这是将SQL语句链接到V $ SESSION中右行的唯一机制。
实际上访问顺序是:V $ SESSION为您提供会话1执行的最后一个语句的地址。您可以使用它来查找V $ SQLAREA中的SQL_ID,从而允许您链接到V $ VPD_POLICY。
因此您需要访问多个V $视图。但是如果你正在调整,你应该有权访问它们,除了V $ VPD_POLICY。