Oracle中的同义词访问

时间:2014-06-11 06:33:23

标签: oracle synonym

如何访问架构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

1 个答案:

答案 0 :(得分:2)

你不能。

如果架构A中存在同义词,则根据定义它是一个私有同义词。私人同义词是私有的。

如果要在模式B中创建表,则需要访问基础对象(即模式A中的同义词实际指向的任何对象)。鉴于同义词不授予任何权限,即使您可以访问A中的私有同义词,您仍然需要访问基础表。鉴于此,能够访问A中的私有同义词没有任何好处,它只会添加另一层间接,没有明显的好处。