如何访问架构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 :(得分:2)
你不能。
如果架构A中存在同义词,则根据定义它是一个私有同义词。私人同义词是私有的。
如果要在模式B中创建表,则需要访问基础对象(即模式A中的同义词实际指向的任何对象)。鉴于同义词不授予任何权限,即使您可以访问A中的私有同义词,您仍然需要访问基础表。鉴于此,能够访问A中的私有同义词没有任何好处,它只会添加另一层间接,没有明显的好处。