oracle视图无法显示,Oracle创建视图显示无权限

在Oracle中,当使用scott账户创建视图时遇到权限不足的问题,可以通过以system账户登录并授予scott账户相应权限来解决。具体步骤包括:用system登录并授权创建视图、退出后再用scott登录创建视图。如果问题依然存在,可能需要对两个用户都授予更多的权限,例如创建表、查询任意表、评论表、锁定表和查询字典的权限。此方法适用于在同一数据库中不同用户间创建包含对方表的视图时遇到的权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:使用scott登录Oracle以后,创建视图,提示“权限不够”,怎么解决?

回答:

这是因为scott这个帐户目前没有创建视图的权限。解决方法为:

首先使用system帐户进行登录,其中“tigertiger”为安装Oracle时所指定的密码(可修改):

sqlplus system/tigertiger

然后执行:

grant create any view to scott

提示:授权成功。

执行:

exit

退出当前system帐户。

再使用sqlplus登录就可以创建视图了,如:

sqlplus scott/tigert

下面创建一个最简单视图:

create or replace view v1

as

select * from t1;

有时候上面的方法还是无法解决问题,就使用下面的方法:

--创建视图权限,一般网上找都是说的这句,但是光有这句还是无法创建

grant create view to B;

--授予查询权限

grant select any table to B;

--授予权限

grant select any dictionary to B;

附录:如果以上方法不能解决您的问题,可以尝试以下方法。 反正我的问题是解决了,记录下来。害我找大半天;

描述:

同一个数据库: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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值