SQL Server 2008 R2 で、SQL プロファイラーまたはユーザー クエリを監視する他の手段から見えないようにするステートメントを実行したいと考えています。SQL プロファイラーによって表示される内容を制御する方法はありますか?
私は次のようなものを実行したいと思います:
SELECT 'MyPassword' INTO #passwordTable
SQL Server プロファイラーまたはその他の方法で 'MyPassword' を表示したくありません。何か案は?
SQL Server 2008 R2 で、SQL プロファイラーまたはユーザー クエリを監視する他の手段から見えないようにするステートメントを実行したいと考えています。SQL プロファイラーによって表示される内容を制御する方法はありますか?
私は次のようなものを実行したいと思います:
SELECT 'MyPassword' INTO #passwordTable
SQL Server プロファイラーまたはその他の方法で 'MyPassword' を表示したくありません。何か案は?
基本的に、いいえ、できません。以前は、次のようなコメントをバッチまたはステートメントに追加することで、これを行うことができました。
-- sp_password
しかし、これはもはや機能しません。なぜパスワードをハッシュ化しないのですか?
SQL プロファイラーを実行するには、サーバー管理者である必要があります。そのため、コマンドが表示されないようにしても、ユーザーはとにかくパスワード テーブルを取得することができます。理想的には、パスワードではなくパスワードのハッシュを保存し、プロファイラーからの表示を役に立たなくします。
プロファイラーがステートメントを見ないようにしたい場合は、次のようなサードパーティのツールを試すことができます: http://www.dbdefence.com/support/dbdefence-documentation/
それが機能するかどうか、またはその会社がどれほど評判が良いかはわかりません。
デニス、アーロンは正しいです。「目に見えないステートメント」のようなものはありません。ステートメントを表示しないように SQL プロファイラーを微調整することはできません。一度乗ると、DB で実行されているすべてのステートメントを見ることができます。
DB に送信する前に、この適切なデータを難読化する必要があります。利用可能ないくつかの難読化された方法 (一方向ハッシュ、対称アルゴリズム、自家製の方法) があります。ニーズにより適した方法を選択して実装する必要があります。残念ながら、あなたのケースには無料のランチはありません...
DBDefence という製品を見たことがあります。SQL ステートメントをプロファイラーから完全に隠します。彼らがどうやってそれをするのか私にはわかりません。データベースが小さいため、無料版を使用しています。
以前のバージョンの SQL Server では、コメント --sp_password を追加できましたが、SQL Server 2008 以降ではできませんでした。
要点がわかりません、本当に。SQL プロファイラーでクエリを表示できれば、データベースにアクセスして実際のデータを表示できるはずです。
重要なのは、機密データ (パスワードなど) を平文で保存しないことです。
人々が SQL プロファイラーを使用できないようにするには、SQL Server に適切なセキュリティ構成を適用する必要があります。