JdbcTemplateを使用し、ユーザークエリを実行するプログラムを作成しています。Spring JDBCパッケージを使用して、ユーザークエリをSELECTステートメントに制限する方法はありますか?基盤となるデータベースを更新するクエリをユーザーに実行させたくありません。
ありがとう、
ktm
JdbcTemplateを使用し、ユーザークエリを実行するプログラムを作成しています。Spring JDBCパッケージを使用して、ユーザークエリをSELECTステートメントに制限する方法はありますか?基盤となるデータベースを更新するクエリをユーザーに実行させたくありません。
ありがとう、
ktm
Spring JDBCはこれを自動的に行うことはできません。独自のアダプターを作成し、すべてのコードがアダプターを呼び出すようにする必要があります。
DB特権を使用して目的を達成することを検討しましたか?セキュリティをどの程度細かくするかによって異なりますが、データベース所有者アカウントとは別のアカウントである「アプリケーション」データベースユーザーを作成することをお勧めします。次に、テーブルごとに適切な特権を付与します。
春のセキュリティはこのために設計されています。アクセスを処理するための事前定義されたテーブルがあります。
オプションがある場合は、JPA(Java Persistence API)の使用を検討してください。Queryオブジェクトには個別のgetResultListメソッドとgetSingleResultメソッドがあり、クエリがDELETEまたはUPDATEの場合に例外をスローします(deleteとupdateはexecuteUpdateを介してのみ処理されます)。