4

SQL Server 2008 R2 で、SQL プロファイラーまたはユーザー クエリを監視する他の手段から見えないようにするステートメントを実行したいと考えています。SQL プロファイラーによって表示される内容を制御する方法はありますか?

私は次のようなものを実行したいと思います:

SELECT 'MyPassword' INTO #passwordTable

SQL Server プロファイラーまたはその他の方法で 'MyPassword' を表示したくありません。何か案は?

4

5 に答える 5

9

基本的に、いいえ、できません。以前は、次のようなコメントをバッチまたはステートメントに追加することで、これを行うことができました。

-- sp_password

しかし、これはもはや機能しません。なぜパスワードをハッシュ化しないのですか?

于 2012-09-12T20:15:54.037 に答える
1

SQL プロファイラーを実行するには、サーバー管理者である必要があります。そのため、コマンドが表示されないようにしても、ユーザーはとにかくパスワード テーブルを取得することができます。理想的には、パスワードではなくパスワードのハッシュを保存し、プロファイラーからの表示を役に立たなくします。

プロファイラーがステートメントを見ないようにしたい場合は、次のようなサードパーティのツールを試すことができます: http://www.dbdefence.com/support/dbdefence-documentation/

それが機能するかどうか、またはその会社がどれほど評判が良いかはわかりません。

于 2012-09-12T20:20:24.707 に答える
1

デニス、アーロンは正しいです。「目に見えないステートメント」のようなものはありません。ステートメントを表示しないように SQL プロファイラーを微調整することはできません。一度乗ると、DB で実行されているすべてのステートメントを見ることができます。

DB に送信する前に、この適切なデータを難読化する必要があります。利用可能ないくつかの難読化された方法 (一方向ハッシュ、対称アルゴリズム、自家製の方法) があります。ニーズにより適した方法を選択して実装する必要があります。残念ながら、あなたのケースには無料のランチはありません...

于 2012-09-27T11:24:18.963 に答える
1

DBDefence という製品を見たことがあります。SQL ステートメントをプロファイラーから完全に隠します。彼らがどうやってそれをするのか私にはわかりません。データベースが小さいため、無料版を使用しています。

以前のバージョンの SQL Server では、コメント --sp_password を追加できましたが、SQL Server 2008 以降ではできませんでした。

于 2013-09-18T11:03:28.207 に答える
0

要点がわかりません、本当に。SQL プロファイラーでクエリを表示できれば、データベースにアクセスして実際のデータを表示できるはずです。

重要なのは、機密データ (パスワードなど) を平文で保存しないことです。

人々が SQL プロファイラーを使用できないようにするには、SQL Server に適切なセキュリティ構成を適用する必要があります。

于 2012-09-12T20:15:07.570 に答える