我需要帮助理解当一个同义词指向另一个(不同的)模式对象时,用户需要什么授权/特权才能创建它。
当我尝试下面的方法时,我得到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发布于 2014-07-19 01:29:38
the CREATE SYNONYM command的文档包括:
先决条件
要在您自己的模式中创建私有同义词,您必须具有CREATE SYNONYM系统权限。
要在另一个用户的模式中创建私有同义词,您必须具有CREATE ANY SYNONYM系统权限。
要创建PUBLIC同义词,您必须具有CREATE PUBLIC SYNONYM系统权限。
您正试图在READWRITE自己的模式中创建一个私有同义词,因此您必须这样做:
GRANT CREATE SYNONYM TO READWRITE;同义词指向的对象位于不同的模式中,但这在这里是不相关的。
如果您的新帐户只访问GDACS模式中的对象,特别是如果您有许多对象需要授予访问权限,那么作为一种替代方案,您不必为每个会话中可以alter the new user's current_schema的所有内容创建同义词--可能是via a logon trigger。
https://stackoverflow.com/questions/24830023
复制相似问题