2014-02-18 1 views
0

다른 스키마에서 정의하는 패키지 내에서 dba_audit_object 테이블에서 정보를 추출해야합니다. 목적은 추출 된 데이터를 Oracle 형식으로 표시하는 것입니다.oracle : 다른 스키마에서 dba_audit_object에 액세스하는 방법

SQL Developer에서 SELECT * FROM dba_audit_object을 수행하면 결과가 나타납니다.

그러나 동일한 SELECT를 패키지에 쓰면 다음과 같이 표시됩니다. ORA-00942 table or view does not exist. 동일한 SELECT 문을 기반으로 내 스키마 내에서보기를 만들려고해도 동일한 오류가 발생합니다.

sys.dba_audit_object을 사용해 보았지만 여전히 동일한 오류 메시지가 표시됩니다.

내가 어떻게해야하는지/알아야 할 사람이 있습니까? 이미 다음 동의어에 대한 보조금을 제공 할 수 동의어가있는 경우

답변

0

나는 대답을 얻었다. SYS로 로그인하고 다음을 수행하십시오.

GRANT SELECT ON DBA_AUDIT_OBJECT TO PUBLIC;

그런 다음에 만 다른 스키마가이를 사용하여 새로운보기 또는 패키지를 만들 수 있습니다.

+0

이것은 내가 말한 것이다 !! 대답을 제대로 읽었습니다. – SriniV

+0

고맙습니다. 나는 그것을 여러 번 읽었지만 문장의 두 번째 부분을 해결하지 못했습니다. jonearles도 thx! 그 부분은 제가 처음에는 이해하지 못했던 부분입니다. 모두 잘 지금 :) – user3322952

1

GRANT SELECT ON DBA_AUDIT_OBJECT TO THE_SCHEMA_FROM_WHERE_YOU_NEED_ACCESS; 

처럼 보조금을 제공합니다. 이 경우는 SYS로

GRANT SELECT ON SYS.DBA_AUDIT_OBJECT TO THE_SCHEMA_FROM_WHERE_YOU_NEED_ACCESS; 

실행을 사용합니다.

+0

안녕 왜 공개 동의어에 select를 부여 할 수 없습니까? 이미 SYS 스키마에 PUBLIC 동의어 DBA_AUDIT_OBJECT가 정의되어 있으며 내 DBA가 select를 내 ROLE에 부여했습니다. 아직까지는 효과가 없습니다. 왜 안 되니? – user3322952

+0

@ user3322952 패키지 소유자에게 할당 된 역할뿐만 아니라 패키지 소유자에게 직접 * 부여해야합니다. –

관련 문제