問題タブ [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.
perl - DBD::ProxyをDBIx::Classで使用するにはどうすればよいですか?
ファイアウォールを介してデータベース接続を取得する必要があります。また、実行できるクエリを制限する必要があります。DBD::Proxyはこれに対する完璧なソリューションのようです。ただし、現在DBIx :: Classを使用しているため、それらをフックする方法がわかりません。
特に、DBD::ProxyはSQLを使用しません。特定の名前付きクエリが必要です。しかし、DBIx :: Classには、これらの名前付きクエリを呼び出す方法がないようです。
これはCatalystベースのWebアプリ内にあります。
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
この問題を解決するコードはありますか?