欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle创建视图view权限不足问题剖析

程序员文章站 2022-04-08 11:25:04
...

使用USER1等其他用户登录Oracle以后,创建视图,提示ldquo;权限不够rdquo;,怎么解决?这是因为USER1这个帐户目前没有创建视图

问题:

使用USER1等其他用户登录Oracle以后,创建视图,提示“权限不够”,怎么解决?

这是因为USER1这个帐户目前没有创建视图的权限。

解决方法为:

首先使用system帐户进行登录

然后执行:

grant create any view to USER1

提示:授权成功。

再使用USER1登录就可以创建视图了。

如果还是问题还是没有解决:

即便是

grant dba to USER1;

grant dba to USER2;


可能还会报这种错误,那么就按下面的方法即可实现创建视图:

如果用户USER1创建视图时,视图语句包含有USER2中的表,那么需要在USER2登陆的会话窗口中对USER1赋予创建的权限。

如果用户USER2创建视图时,视图语句包含有USER1中的表,那么需要在USER1登陆的会话窗口中对USER2赋予创建的权限。

附录:如果以上方法不能解决您的问题,可以尝试以下方法。记录下来。便于记忆:

描述:

同一个数据库:DB1

两个自定义用户:分别为 USER1、USER2

在USER1创建视图,其中试图内包含USER2中的表。 提示“权限不足”

执行以下SQL,根据自己用户不同需修改使用:

--为USER1授权

GRANT CREATE ANY TABLE TO USER1;
GRANT SELECT ANY TABLE TO USER1;
GRANT COMMENT ANY TABLE TO USER1;
GRANT LOCK ANY TABLE TO USER1;
GRANT SELECT ANY DICTIONARY TO USER1;


--为USER2授权

GRANT CREATE ANY TABLE TO USER2;
GRANT SELECT ANY TABLE TO USER2;
GRANT COMMENT ANY TABLE TO USER2;
GRANT LOCK ANY TABLE TO USER2;
GRANT SELECT ANY DICTIONARY TO USER2;

相关阅读:解决Oracle创建视图(VIEW)权限不足的方法