试图设置特定的安全测试用例。这样做的目的是创建一个可以使用select语句从PL/SQL调用的包。包工作并创建表,但是当我在Oracle中运行SELECT evil_pkg.CreateTab() FROM DUAL时,
ORA- 00904:“EVIL_PKG”。“CREATETAB”:无效标识符00904。00000 - "%s:无效标识符“*原因: *行动:行处错误: 41栏:8
有什么办法可以这样做吗?这里的目的是以这种特定的方式执行包,而不仅仅是执行包。
这是一个包裹:
--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;发布于 2016-04-13 21:42:43
https://stackoverflow.com/questions/36610004
复制相似问题