SQLキャプチャの設定
SQLキャプチャ設定により、SQLステートメントをキャプチャし、動的パラメータをランタイム値にバインドした状態でコントローラUIに表示するかどうかを制御します。たとえば、次のようにSQLコールを構成するJavaコードを見てみましょう。
stmt = new PreparedStatement("select * from user where ssn = ?")
stmt.bind(1, "123-123-1234")
stmt.execute()Capture Raw SQL オプションを有効にすると、Splunk AppDynamics は次の形式で SQL コールをキャプチャして表示します。
select * from user where ssn = '123-123-1234'Capture Raw SQL が無効な場合、SQL コールは、値にバインドされていない疑問符パラメータとともに元の形式で表示されます。capture-raw-sql を無効にし、SQL プリペアドステートメントで疑問符パラメータを使用すると、機密データがコントローラ UI に表示されなくなります。
重要な点としては、上記のように、SQL ステートメントの元のプリペアドステートメント形式で、機密の値をパラメータ化する必要があることに注意してください。以下のステートメントでは機密データがパラメータ化されていないため、Capture Raw SQL が有効か無効かを問わず、コントローラ UI に機密の可能性がある情報(社会保障番号)が表示されてしまいます。
stmt = new PreparedStatement("select * from user where ssn ='123-123-1234'")[Call Graph Settings] タブで SQL キャプチャ設定を構成するには、[SQL Capture Settings] セクションまでスクロールして、次のオプションのいずれかを選択します。
-
Capture Raw SQL このオプションを選択すると、プレペアドステートメントとして構成されたSQLステートメントが、動的パラメーターをランタイム値にバインドした状態でキャプチャされます。デフォルトでは、プライベートSQLデータと10ミリ秒未満のクエリはキャプチャされません。
注: 重要このオプションを選択すると、MongoDB、DynamoDB、および CassandraDB などの NoSQL データベースの raw クエリの詳細をキャプチャできます。また、リレーショナルクエリはスクラビング処理されません。
注: .NET環境でCapture Raw SQLを有効にすると、エージェントはADO.NETストアドプロシージャコールのパラメータを、疑問符で表されていなくてもキャプチャします。CLRで使用できないストアドプロシージャのローカル変数はキャプチャしません。 - Filter Parameter values:このオプションを選択すると、プレペアドステートメントとして構成されたSQLステートメントが、動的パラメーターをランタイム値にバインドされていない状態でキャプチャされます。