2013-06-18 1 views
3

행 레벨 보안 정책에 의해 추가 된 술어는 10046 추적 파일에 표시되지 않습니다. 하나의 제안은 10053 (옵티 마이저) 추적을 사용하여 VPD 술어를 보는 것입니다. 그러나 다른 세션에서 주어진 세션에 10053 추적을 설정하는 것은 어렵습니다.Oracle 데이터베이스에서 VPD가 추가 한 술어를 보는 방법은 무엇입니까?

RLS 정책에 의해 추가 된 술어를 확인하는 다른 방법이 있습니까?

시나리오 : RLS 정책이 세션 # 1의 쿼리에 적용됩니다. 세션 # 2에서 세션 # 1에서 일어나는 일을 분석해야합니다.

데이터베이스 10g는 Oracle 10g입니다.

+1

이 질문은 정당한 데이터베이스 프로그래밍 질문이므로 마감되었을 수 없습니다. – APC

+0

이 Q는 StackOverflow보다 http://dba.stackexchange.com/에 더 적합합니다. 여기에서 너무 화제가됩니다. –

+0

@WimtenBrink - 왜? 제 경험상 DBA는 로우 레벨 보안 정책의 구현에 관여하지 않습니다. dba.se 사이트에서 데이터베이스를 다루는 질문이 있다는 논쟁이 아닌 한? – APC

답변

2

V$VPD_POLICY에 액세스 할 수있는 사용자가 필요합니다. 기본적으로 이는 SYSDBA 사용자 일 뿐이므로보기에 대한 액세스 권한을 부여하려면 DBA가 필요할 것입니다. 뷰는 술어와 SQL 문을 연결합니다. V $ SESSION의 오른쪽 행에 SQL 문을 연결하는 유일한 메커니즘 인 ADDRESS를 제공하기 때문에 V $ SQLAREA에서 SQL_ID를 가져와야합니다.

실제로 액세스 순서는 다음과 같습니다. V $ SESSION은 세션 1에서 실행 한 마지막 명령문의 ADDRESS를 제공합니다.이 명령문을 사용하여 V $ SQLAREA에서 SQL_ID를 찾으면 V $ VPD_POLICY .

그래서 여러 V $보기에 액세스해야합니다. 그러나 조정 중이면 V $ VPD_POLICY를 제외하고 어쨌든 액세스 할 수 있어야합니다.

+0

예 V $ VPD_POLICY를 통해 술어를 볼 수 있습니다. 이것이 VPD 술어에서 얻을 수있는 유일한 신뢰할 수있는 방법입니까? – user2275479

+0

왜이 주제가 꺼져 있습니까? 오라클 데이터베이스에 대한 질문은 허용되지 않습니다. – user2275479

+2

글쎄, 나는 데이터베이스 프로그래밍 질문에 대한 답변을 토대로 내 답변을 많이 수집했다. dba.stackexhange.com에 더 적절하게 속하는 몇 가지 데이터베이스 질문이 있지만 closers가 거기에 이전하도록 투표했습니다. 흥미롭게도 유권자 중 어느 누구도 데이터베이스 프로그래밍을 전공하는 것으로 보이지 않으므로 이해하지 못했기 때문에 투표를 끝내기로 한 것 같습니다. – APC