创建同义词 ora-01031 权限不足
Posted
技术标签:
【中文标题】创建同义词 ora-01031 权限不足【英文标题】:create synonym ora-01031 insufficient privileges 【发布时间】:2014-09-09 21:18:45 【问题描述】:当用户指向另一个(不同的)架构对象时,我需要帮助了解用户创建同义词所需的授权/特权。
当我尝试以下操作时,我得到 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
【问题讨论】:
你有没有 grantedCREATE SYNONYM
to the user 并且错过了这个问题?
【参考方案1】:
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。
【讨论】:
以上是关于创建同义词 ora-01031 权限不足的主要内容,如果未能解决你的问题,请参考以下文章