ora01720

今天,根据业务需要,写了一个视图。即A用户需要查询B用户下的c表

已经进行过授权了。命令:grant select on c to B;

在创建视图的时候出错,错误信息为:ORACLE ora-01720 授权选项对于'xxxx'不存在

经查询,需要要使用如下命令进行授权:grant select on c to B with grant option。

 

ORACLE-016:ora-01720 授权选项对于'xxxx'不存在
发布者:fruit 
 时间:2015-08-25 08:48:05
报错的情形如下,
A用户:视图V_A
B用户:视图V_B,并且用到了V_A
C用户:需要用V_B,
授权过程,
A用户下:
grant select on V_A to B 
B用户下:
grant select on V_B to C
此时报错:ora-01720 授权选项对于'V_A'不存在。
那么是什么原因呢,因为B还需要授权视图给C用户,但是B用到的视图是A下的,所以除了将V_A授权select权限给B外,还要授权操作权限。
比如这里就需要在A用户下,授权grant操作权限给B,那么B才能继续授权给C。如下:
A用户下:
grant select on V_A to B with grant option 
B用户下:
grant select on V_B to C
此时正确。C中能正常使用V_B了。
同样如果C还要继续授权则B用户下也要依此进行授权。
 

 

ORA-01720错误是指在Oracle数据库中执行授权(GRANT)语句时不存在授权选项。这个错误通常发生在以下情况下: 1. 语法错误:在授权语句中可能存在语法错误,比如错误的关键字使用或者错误的授权对象命名等。在编写授权语句时应仔细检查语法,确保没有拼写错误或者错误的语法结构。 2. 错误的授权对象:可能尝试对一个不存在的表、视图、存储过程或者其他对象进行授权。在授权之前需要确保对象存在并且正确命名。可以使用DESCRIBE命令或查询数据字典(如ALL_OBJECTS视图)来确定对象是否存在。 3. 缺少权限:当前用户可能没有足够的权限来执行授权操作。在Oracle数据库中,只有具有足够权限的用户才能执行授权操作。如果收到ORA-01720错误,可能需要联系数据库管理员(DBA)或具有足够权限的用户来执行授权操作。 解决ORA-01720错误的方法包括: 1. 仔细检查授权语句的语法,确保没有错误的关键字或拼写错误。 2. 确保授权对象存在并且正确命名。 3. 如果是权限不足导致的错误,联系数据库管理员或具有足够权限的用户来执行授权操作。 总之,ORA-01720错误通常是由于授权语句中存在语法错误、错误的授权对象或者缺少权限引起的。使用正确的语法、正确的对象名称和具有足够权限的用户来执行授权操作可以解决这个错误。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值