将dbms_sql限制为SELECT查询

时间:2013-11-25 19:35:01

标签: oracle security plsql sql-injection

我正在编写一个类似于Tom Kyte的print_table的函数,但是有更多的输出选项和更好的格式化等等。让我感到很困惑的是编写了一个函数,你可以用{{1}输入任意SQL - 而不是传递引用游标 - 非常危险!但是,我需要知道列属性,而AFAIK,除此之外别无他法。

是否有办法限制authid currentuser功能,以便它只对dbms_sql.execute个查询进行操作?或者,换句话说,有没有办法检查通过游标解析的DML的类型,然后,例如,如果除select以外的其他任何内容,则引发异常?

查询的文本分析(例如,允许selectselect,但没有其他内容)不起作用,因为您可以with等...

(P.S。,Oracle 10gR2,如果它有所作为。)

0 个答案:

没有答案