2014-06-11 3 views
0

스키마 B의 스키마 A에 정의 된 동의어 Z에 액세스하는 방법은 무엇입니까?오라클에서 동의어 액세스

Example - //CREATING TABLE X IN SCHEMA B FROM SYNONYM Z DEFINED IN SCHEMA A 
CREATE TABLE B.X(SELECT * FROM A.Z); 

//THIS SYNTAX GIVES ERROR : TABLE DOESN'T EXIST 
+0

동의어는 접두사 스키마 이름과 섞이지 않아야합니다. 스키마의 개체를 나타내는 이름입니다. 모든 스키마에서 공용이거나 하나의 스키마에서 공용이 될 수 있습니다. 귀하의 경우, Z가 스키마 A의 테이블 Z를 참조하는 동의어 인 경우 사용자를 테이블 Z n 스키마 A에 대한 액세스 권한이있는 Z로만 참조하십시오. –

+0

정보를 주셔서 감사합니다. @OracleUser – Sharmi

답변

2

수 없습니다.

스키마 A에 동의어가 있으면 정의에 따라 사적인 동의어입니다. 사적인 동의어는 사적인 것입니다.

스키마 B에 테이블을 만들려면 기본 개체 (스키마 A의 동의어가 실제로 가리키는 개체)에 액세스해야합니다. 동의어가 권한을 부여하지 않는다면, A에서 사적 동의어에 접근 할 수 있다고하더라도 여전히 기본 테이블에 대한 액세스 권한이 필요합니다. A를 사용하면 사적인 동의어에 액세스 할 수 있다는 이점이 없습니다. 명백한 이점이 없으면 간접 지정의 또 다른 계층을 추가하는 것입니다.

+0

정보를 주셔서 감사합니다 .. @ 저스틴 – Sharmi