创建同义词ora-01031权限不足

时间:2014-07-18 16:43:23

标签: oracle schema privileges grant synonym

我需要帮助了解用户在指向另一个(不同的)架构对象时创建SYNONYM所需的授权/特权。

当我尝试以下操作时,我得到的ora-01031权限不足,显然我失踪并且未能应用其他所需的权限。我尽可能地搜索,但无法找到任何特定于跨模式同义词的内容。

CREATE USER test IDENTIFIED BY pw DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
ALTER USER test IDENTIFIED BY pw;
GRANT CONNECT, RESOURCE TO test;

-- ... create a bunch of stuff in test...

CREATE USER READWRITE IDENTIFIED BY pw DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE    TEMP;
ALTER USER READWRITE IDENTIFIED BY pw;
GRANT CONNECT, RESOURCE TO READWRITE;

GRANT SELECT ON GDACS.FIXALARMS TO PUBLIC;
GRANT UPDATE, INSERT ON GDACS.FIXALARMS TO READWRITE; 

CONNECT READWRITE/pw;

CREATE SYNONYM FIXALARMS for test.FIXALARMS;
ORA-01031 insufficient privileges

1 个答案:

答案 0 :(得分:13)

the CREATE SYNONYM command的文档包括:

  

<强>先决条件

     

要在您自己的架构中创建私有同义词,您必须拥有   CREATE SYNONYM系统权限。

     

要在其他用户的架构中创建私有同义词,您必须拥有   CREATE ANY SYNONYM系统权限。

     

要创建PUBLIC同义词,您必须拥有CREATE PUBLIC SYNONYM系统权限。

您正试图在READWRITE自己的架构中创建一个私有同义词,因此您必须这样做:

GRANT CREATE SYNONYM TO READWRITE;

同义词所指向的对象位于不同的架构中,但这与此无关。