在oracle中,可以利用“grant create synonym to 用户名”语句解决同义词创建权限不足的问题;该语句可以给指定的用户添加创建同义词权限,想要在架构中创建私有同义词,需要具有“CREATE SYNONYM”系统权限。
本教程操作环境:windows10系统、Oracle 12c版、Dell G3电脑。
oracle同义词创建权限不足怎么办
问题描述
我需要帮助了解用户在指向另一个(不同的)架构对象时创建同义词需要什么授权/特权.
当我尝试下面的操作时,我得到的 ora-01031 权限不足,所以很明显我遗漏了并且无法应用其他所需的权限.我尽可能地进行了搜索,但找不到任何特定于跨架构同义词的内容.
推荐答案
CREATE SYNONYM 命令 包括:
先决条件
要在您自己的架构中创建私有同义词,您必须具有CREATE SYNONYM 系统权限.
要在另一个用户的架构中创建私有同义词,您必须具有CREATE ANY SYNONYM 系统权限.
要创建PUBLIC同义词,您必须具有CREATE PUBLIC SYNONYM系统权限.
您正在尝试在 READWRITE 自己的架构中创建私有同义词,因此您必须这样做:
解决方法:赋予权限
赋予创建同义词权限,输入grant create synonym to scott; 注意带分号 为scott用户赋予创建同义词权限。
grant create synonym to scott;
赋予创建视图权限,输入grant create view to scott; 注意带分号 为scott用户赋予创建视图权限。
同义词指向的对象在不同的架构中,但这与此处无关.
如果您的新帐户仅打算访问 GDACS 模式中的对象,并且特别是如果您要授予访问权限的对象很多,那么作为必须为所有可以访问的内容创建同义词的替代方法 在每个会话中更改新用户的 current_schema – 可能是 通过登录触发器.
推荐教程:《Oracle视频教程》