web-dev-qa-db-ja.com

開発環境でSQL Server Express 2008サービスを実行することをお勧めするユーザーアカウントはどれですか。

SQL Server Express 2008セットアップでは、サービスごとに異なるユーザーアカウントを割り当てることができます。

開発環境では、ドメインユーザー、ローカルユーザー、NT Authority\NETWORK SERCVICE、NT Authority\Local System、またはその他のアカウントを使用しますか、またその理由は何ですか。

28
Magnus Lindhe

Local Systemは推奨されません。これは管理者と同等のアカウントであるため、管理者権限を利用した問題のあるコーディングにつながる可能性があります。セキュリティを意識した管理者/ DBAはサービスを管理者として実行したくないので、本番システム。

サーバーインスタンスが他のドメインリソースにアクセスする必要があるかどうかに応じて、どのインスタンスで実行する必要がある低特権アカウントを決定する必要があります。

同じIDコンテキストで複数のサービスを実行しないという追加のセキュリティ上の利点を得るために、通常実行する一意のローカルで低い特権のアカウントを作成するよりも(非匿名)ドメインリソースにアクセスする必要がない場合。 ローカルサービスアカウントはSQL ServerまたはSQL Serverエージェントサービスではサポートされていないことに注意してください。

非匿名ドメインリソースにアクセスする必要がある場合は、3つのオプションがあります。

  1. ネットワークサービスとして実行します。これも低い特権のアカウントですが、コンピューターのネットワーク資格情報を保持します。
  2. ローカルサービスアカウントで実行する
  3. ローカル権限の低いカスタムドメインアカウントで実行します。開発者アカウントで実行することの利点の1つは、セキュリティを損なうことなく自分のIDのプロセスにデバッガーをアタッチする方が簡単なので、デバッグが簡単になります(非管理者アカウントには、デフォルトでデバッガーを別のIDプロセスにアタッチする権限がないためです) )。別のドメインアカウントを使用することの欠点は、特に各開発者の各サービスに理想的には固有の資格情報が必要であり、開発者が離れてもリークが発生しないため、これらのアカウントを管理するオーバーヘッドです。

私がしがちなことのほとんどは、ドメインリソースにアクセスするためのサービスを必要としないので、私が管理する固有のローカルな低い特権のアカウントを使用する傾向があります。また、管理者以外のユーザーとしても排他的に実行しています(XP SP2、Server 2003、VistaおよびServer 2008で大きな問題は発生していません)で実行しているため、サービスが必要な場合があります。ドメインリソースにアクセスする場合、自分のドメイン資格情報を使用する心配はありません(そのため、非運用ドメインIDの束の作成/維持についてネットワーク管理者を心配する必要はありません)。

34
Joe Kuemerle

場合によります。

  • ローカルシステム-決して、それは高すぎる特権です。
  • ネットワークサービス-おそらく、ネットワークリソースに接続する必要がある場合ですが、それは疑わしいものです。
  • ローカルサービス-おそらく最良の選択、限られた特権、ネットワーク接続のロックを解除しない
  • ローカルインタラクティブユーザー?本当にログイン権限が必要ですか、それともユーザーとして機能する必要がありますか?
  • ドメインユーザー?その中からネットワークドライブにアクセスしている場合を除いて、問題はありません。 SQLが正常に動作しない場合、攻撃者はドメインに対して認証されます。
14
blowdart

MSはこれに関する良い記事を持っています: http://msdn.Microsoft.com/en-us/library/ms143504(v = sql.105).aspx

彼らは、ローカルサービスはSQL Serverエンジンでは許可されていないと述べています。個人的には、開発中の問題を回避するためだけにローカルシステムを使用していますが、運用環境では、ベストプラクティスは、仕事を遂行するために必要な権限のみを持つドメインレベルのサービスアカウントを作成することです。

4
Schrodo_Baggins