首页 文章

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

提问于
浏览
9

我需要帮助了解用户在指向另一个(不同的)架构对象时创建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 回答

  • 13

    the CREATE SYNONYM command的文档包括:

    先决条件要在自己的架构中创建专用同义词,您必须具有CREATE SYNONYM系统特权 . 要在另一个用户的模式中创建私有同义词,您必须具有CREATE ANY SYNONYM系统特权 . 要创建PUBLIC同义词,您必须具有CREATE PUBLIC SYNONYM系统特权 .

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

    GRANT CREATE SYNONYM TO READWRITE;
    

    同义词指向的对象位于不同的模式中,但这与此无关 .

相关问题