【IT168 评论】前几天客户遇上这样一个问题,某个用户A将视图的SELECT给予另一个用户B,但是用户B查询这个视图时,仍然报错:ORA-01031: 权限不足。这是怎么一回事呢?下面来模拟一下这个过程:
有三个用户test1,test2,test3, 三个用户都具有DBA色色权限。
用TEST1用户创建一个表T1,并将其查询权限授予TEST2:
SQL>createtablet1asselect*fromall_objects;
表已创建。
SQL>grantselectont1totest2;
授权成功。
SQL>createtablet1asselect*fromall_objects;
表已创建。
SQL>grantselectont1totest2;
授权成功。
用TEST2用户创建一个视图,视图的基表是TEST1.T1,并将查询权限授予TEST3:
SQL>createviewv_t1asselect*fromtest1.t1;
视图已建立。
SQL>grantselectonv_t1totest3;
授权成功。
SQL>createviewv_t1asselect*fromtest1.t1;
视图已建立。
SQL>grantselectonv_t1totest3;
授权成功。
TEST3用户查询视图TEST2.V_T1:
SQL>select*fromtest2.v_t1whererownum<1;select*fromtest2.v_t1whererownum<1*ERROR 位