报错的情形如下,
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用户下也要依此进行授权。
本文解析了在Oracle数据库中,当A用户授权视图V_A给B用户,B用户再授权包含V_A的视图V_B给C用户时遇到的ORA-01720错误。阐述了为实现级联授权,A用户需使用WITH GRANT OPTION授予B用户额外权限,以确保B用户能成功将V_B授权给C用户。
1万+

被折叠的 条评论
为什么被折叠?



