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