開発環境で SQL Server Express 2008 サービスを実行する場合に推奨されるユーザー アカウントは何ですか?
-
09-06-2019 - |
質問
SQL Server Express 2008 セットアップでは、サービスごとに異なるユーザー アカウントを割り当てることができます。
開発環境の場合、ドメイン ユーザー、ローカル ユーザー、NT Authority ETWORK SERCVICE、NT Authority\Local System、またはその他のアカウントを使用しますか?またその理由も教えてください。
解決
ローカルシステム これは管理者と同等のアカウントであるため、セキュリティを意識する管理者/DBA は管理者としてサービスを実行することを実際には好まないため、運用システムでは許可されない管理者特権を利用する疑わしいコーディングにつながる可能性があります。
サーバー インスタンスが他のドメイン リソースにアクセスする必要があるかどうかに応じて、どの種類の低特権アカウントで実行するかを決定する必要があります。
(匿名ではない) ドメイン リソースにアクセスする必要がない場合は、同じ ID コンテキストで複数のサービスを実行しないという追加のセキュリティ上の利点を得るために、通常、そのアカウントを実行するための固有のローカルの低特権アカウントを作成します。 。 ローカル サービス アカウントは、SQL Server サービスまたは SQL Server エージェント サービスではサポートされていないことに注意してください。
非匿名ドメイン リソースにアクセスする必要がある場合は、次の 3 つのオプションがあります。
- として実行 ネットワークサービス これも権限の低いアカウントですが、コンピュータのネットワーク資格情報を保持します。
- ローカルサービスアカウントで実行
- ローカル権限が低いカスタム ドメイン アカウントで実行します。開発者アカウントで実行する利点の 1 つは、セキュリティを損なうことなく自分の ID のプロセスにデバッガーをアタッチすることが容易になるため、デバッグが容易になることです (管理者以外のアカウントには、デフォルトでデバッガーを別の ID プロセスにアタッチする権限がないため) )。別のドメイン アカウントを使用する場合の欠点は、これらのアカウントの管理にオーバーヘッドがかかることです。特に、開発者が退職した場合に情報漏えいがないよう、各開発者の各サービスに一意の資格情報を持たせることが理想的であるためです。
私がよく行うことのほとんどは、サービスがドメイン リソースにアクセスする必要がないため、私が管理する独自のローカルの低特権アカウントを使用することが多いです。また、私は管理者以外のユーザーとしてのみ実行しています (XP SP2、Server 2003、Vista、および Server 2008 で大きな問題は発生していません)。そのため、ドメイン リソースにアクセスするためにサービスが必要な場合でも、心配する必要はありません。独自のドメイン資格情報の使用について (さらに、そうすることで、多数の非運用ドメイン ID の作成/維持についてネットワーク管理者を心配する必要がなくなります)。
他のヒント
場合によります。
- ローカルシステム - 決して、それは特権が高すぎます。
- ネットワークサービス - おそらく、ネットワークリソースに接続する必要がある場合は、それは疑わしいです。
- ローカルサービス - おそらく最良の選択、限られた特権、ネットワーク接続のロックを解除しないでください
- ローカルの対話型ユーザー?本当にログイン権を持っている必要がありますか、それともユーザーとして機能する必要がありますか?
- ドメインユーザー?いいえ、その中からネットワークドライブにアクセスしない限りではありません。SQLがAMOKを実行すると、攻撃者がドメインに対して認証されます。
MS にはこれに関する優れた記事があります。http://msdn.microsoft.com/en-us/library/ms143504(v=sql.105).aspx
SQL Server エンジンではローカル サービスが許可されていないと記載されています。個人的には、開発中の問題を回避するためだけにローカル システムを使用していますが、運用環境では、ジョブを実行するために必要な権限だけを持つドメイン レベルのサービス アカウントを作成するのがベスト プラクティスです。
デフォルトとして使用したいもの。それを変更することは、後でトラブルを招くだけです。