我正在寻找一个支持SQL限制和事务的DBI(或类似)代理。我所知道的两个是:
DBD::代理
我发现的问题
DBD::代理
是它的服务器,
DBI::ProxyServer
,不仅限制了通过网络传入的查询(我想要),还限制了生成的查询
内部
通过数据库驱动程序。例如,与
DBD::Oracle
,ping不再有效,以及它自己发出的许多其他查询。
我不能仅仅允许他们,因为:
-
这是DBD::Oracle的相当多的内部知识,而且相当脆弱。
-
白名单是
query_name => 'sql'
,在哪里
query_name
是传递给任何人的第一个词
prepare
.DBD::Oracle有很多内部查询,其中许多查询的第一个单词是
select
(duh)。
所以,我似乎用不上
DBD::代理
DBD::Gofer
我还没有尝试过DBD::Gofer,因为文档似乎告诉我,我不能通过它使用事务:
约束
...
您不能使用交易
仅自动提交。不支持交易。
因此,在我编写自己的特定于应用程序的代理之前(使用
RPC::PLServer
?),有没有解决这个问题的代码?