paketini çalıştırırken. Fikir, select deyimini kullanarak PL/SQL'den çağrılabilecek bir paket oluşturmaktı. paket çalışır ve tablo oluşturur ama Oracle SQL Developer SELECT evil_pkg.CreateTab() FROM DUAL
çalıştırdığınızda benORA-00904, belirli bir güvenlik testi vakası kurmaya çalışırken SELECT
ORA-00904 alıyorum: "EVIL_PKG" "CREATETAB": geçersiz tanımlayıcı 00904. 00000 - "% s: geçersiz tanımlayıcı". * Neden:
* Eylem: Line'da hatası: 41 Kolon: 8
bunu yapmak mümkündür herhangi bir yolu var mı? Buradaki amaç, paketi bu şekilde yürütmektir, sadece paketini yürütmek için değil. Paket içindeki bir prosedür SQL
--Specification
CREATE OR REPLACE PACKAGE evil_pkg AS
PROCEDURE CreateTab;
END evil_pkg;
/
--Body
CREATE OR REPLACE PACKAGE BODY evil_pkg AS
PROCEDURE CreateTab
AS
BEGIN
execute immediate 'CREATE TABLE my_evil_table (id number) ';
COMMIT ;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
ROLLBACK;
RAISE;
END CreateTab;
END evil_pkg;