当用户指向另一个(不同的)模式对象时,我需要帮助了解用户创建 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
最佳答案
the CREATE SYNONYM
command 的文档包括:
Prerequisites
To create a private synonym in your own schema, you must have the
CREATE SYNONYM
system privilege.To create a private synonym in another user's schema, you must have the
CREATE ANY SYNONYM
system privilege.To create a
PUBLIC
synonym, you must have theCREATE PUBLIC SYNONYM
system privilege.
您正在尝试在
READWRITE
中创建私有(private)同义词自己的架构,所以你必须这样做:GRANT CREATE SYNONYM TO READWRITE;
同义词指向的对象在不同的模式中,但这在这里不相关。
如果您的新帐户只打算访问 GDACS 模式中的对象,特别是如果您有很多要授予访问权限的对象,那么作为必须为您可以创建的所有内容创建同义词的替代方法 alter the new user's
current_schema
在每个 session 中 - 可能 via a logon trigger .
关于oracle - 创建同义词 ora-01031 权限不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24830023/