perl - 是否有处理 SQL 限制和事务的 DBI 代理?

标签 perl security proxy dbi dbd-proxy

我正在寻找同时支持 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 (呵呵)。

  • 所以,我似乎不能使用 DBD::Proxy
    DBD::Gofer

    我没有尝试过 DBD::Gofer,因为文档似乎告诉我我不能通过它使用事务:

    CONSTRAINTS

    ...

    You can’t use transactions

    AutoCommit only. Transactions aren’t supported.



    因此,在我编写自己的特定于应用程序的代理(使用 RPC::PLServer ?)之前,是否有代码可以解决这个问题?

    最佳答案

    这个问题最好在 DBI 用户邮件列表中提出,dbi-users@perl.org .
    注册 http://dbi.perl.org/

    我不确定您对 DBD::Proxy 限制查询的意思。在我唯一使用过它的情况下,它根本没有修改查询。

    关于perl - 是否有处理 SQL 限制和事务的 DBI 代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/335677/

    相关文章:

    java - 通过它连接 Java 到 MySQL 需要代理、用户名和密码

    perl - 安装 perl 模块 Class-Load-XS

    ruby-on-rails - 使用常量化的安全影响

    java - 如何在不使用Applet的情况下加密浏览器中的文本字段?

    c# - 在 C# 中生成唯一的 * 和 * 随机 URL

    http - 将 Nginx 502/504 错误从 proxy_pass 重新映射为 408 错误

    java - 通过代理使用 Javamail

    c - 如何计算函数中的行数

    perl - 使用 Visual Studio Code 调试 Perl

    arrays - 将2个数组放入perl中的散列中