問題タブ [dbd-proxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
264 参照

perl - DBD::ProxyをDBIx::Classで使用するにはどうすればよいですか?

ファイアウォールを介してデータベース接続を取得する必要があります。また、実行できるクエリを制限する必要があります。DBD::Proxyはこれに対する完璧なソリューションのようです。ただし、現在DBIx :: Classを使用しているため、それらをフックする方法がわかりません。

特に、DBD::ProxyはSQLを使用しません。特定の名前付きクエリが必要です。しかし、DBIx :: Classには、これらの名前付きクエリを呼び出す方法がないようです。

これはCatalystベースのWebアプリ内にあります。

0 投票する
1 に答える
322 参照

perl - SQLの制限とトランザクションを処理するDBIプロキシはありますか?

SQLの制限とトランザクションの両方をサポートするDBI(または同様の)プロキシを探しています。私が知っている2つは次のとおりです。

  • DBD::Proxy
  • DBD::Gofer

DBD ::Proxy

私が見つけた問題DBD::Proxyは、そのサーバーDBI::ProxyServerがネットワーク経由で着信するクエリを制限するだけでなく、データベースドライバーによって内部的に生成されるクエリも制限することです。そのため、たとえば、を使用するとDBD::Oracle、pingは機能しなくなり、他の多くのクエリも同様に機能しなくなります。

私はそれらを許可することはできません。理由は次のとおりです。

  • これは、DBD :: Oracleに関するかなりの内部知識であり、非常に脆弱です。
  • ホワイトリストはですquery_name => 'sql'。ここquery_nameで、はに渡されるものの最初の単語ですprepare。DBD :: Oracleには多くの内部クエリがあり、それらの多くの最初の単語はselect(duh)です。

だから、使えないようですDBD::Proxy

DBD :: Gofer

私はDBD::Goferを試していません。これは、ドキュメントからDBD::Goferを介してトランザクションを使用できないと言われているためです。

制約

..。

取引はご利用いただけません

AutoCommitのみ。トランザクションはサポートされていません。

それで、(?を使用して)独自のアプリケーション固有のプロキシを作成する前に、RPC::PLServerこの問題を解決するコードはありますか?