web-dev-qa-db-ja.com

SQLサーバーのセキュリティにとってより安全であると考えられるもの

SQL Server 2005/2008でセキュリティを設定する場合。より安全なオプションは何ですか?

  • Windows認証モードのみ
  • 混合認証

サーバーが多くのデスクトップクライアント(シッククライアント)によってアクセスされるかどうか、または少数のWebサーバーがサーバーにアクセスするかどうかは重要ですか?

編集

そして、なぜそれがより安全なのですか? Windows認証を使用することは、接続文字列を構成ファイルに入れることを回避できることを意味します。これはプラスです。

Windows認証では、NT資格情報に基づいて誰がアクセスできるかを制御することもできます。これは、クライアントがサーバーに直接接続する場合に理想的だと思います。

しかし、私がいつも疑問に思っていることの1つは、すべてのクライアントがWebサービスなどのプロキシを経由するときにNT認証がどれほど役立つかということです。

3
JoshBerke

Windows認証はより安全であると考えられています。理由は次のとおりです。

  • Kerberos認証を使用できます。 Kerberosプロトコルには、リプレイ攻撃を防ぐタイムスタンプがあります。また、クライアントは、信頼できるサードパーティ(Active Directoryの実装では、これはDCです)を使用してサーバーのIDを確認できます。
  • これにより、ActiveDirectoryという単一のセキュリティソースが可能になります。したがって、Active Directoryでアカウントをシャットダウンすると、そのアカウントはすべての場所で無効になります。
  • SQL Server2005より前のバージョンのSQLServerでは、ログインパケットは自動的に暗号化されませんでした。高次と低次のビットフリッピングとXOR操作)について話しているので、ネットワーク上でパスワードが渡される方法は簡単に解読されました。
  • 接続文字列にパスワードを入力する必要がないという事実がありますが、これを回避する方法は他にもあります。たとえば、ユーザー名/パスワードを暗号化してレジストリに保存し、実行時に接続文字列を作成します。
  • SQL Serverへのログインは、そのような監査設定がオンになっている場合(およびオンになっている必要がある場合)、他のWindowsログインとともにセキュリティイベントログで追跡されます。つまり、サーバー用のログ解析/集計ソフトウェアがある場合は、アプリケーションイベントログやSQLServerログファイルを必ずしも解析する必要はありません。

Webサービスから単一のアカウントを持っている場合でも、上記でリストしたのと同じ利点がすべてあります。

7
K. Brian Kelley

Windows認証は、主にユーザー名とパスワードが接続文字列で渡されないため、より安全です。データソース= myServerAddress;初期カタログ= myDataBase;統合セキュリティ= SSPI;

データソース= myServerAddress;初期カタログ= myDataBase;ユーザーID = myUsername;パスワード= myPassword;とは対照的に

4
CPU_BUSY

より安全なのは、Windows認証モードです。一般的にネットワークセキュリティが良好であると想定した場合のみです。

現在の設定とニーズについてもう少し詳しく教えてください。

1
Brian Boatright

基本的に、Windows認証が推奨される認証です。理論的には安全です。つまり、適切なネットワークセキュリティがすでに設定されている場合です。

1
MarlonRibunal