報錯的情形如下,
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用戶下也要依此進行授權。