4

SQL Server 2008 を使用しています。SQL Server エージェント ジョブの実行時にどのアカウントが使用されるかについて混乱しています。私の混乱は、

  1. Windows サービス管理コンソールから制御できる Windows サービスとしての SQL Server エージェント。そこから、SQL Server エージェント (私のコンピューターの LocalSystem) を実行するアカウントを設定できます。
  2. SQL Server エージェントのジョブ レベル アカウントを実行するように設定できますか?
  3. 各ステップで、SQL Server エージェントのジョブ ステップを実行するアカウントを設定できますか?

3つの異なるアカウントシステムが使用される可能性があり、各ステップが実行される実際のアカウントが何であるかが懸念され、権限の問題を回避したい (つまり、アカウントに十分な権限があることを確認したい) ため、上記の混乱があります。コメントやアドバイスはありますか?アカウントの 3 つのレベルを明確にしてくれる人がいることに感謝します。

前もって感謝します、ジョージ

4

2 に答える 2

5

通常、アプリがデータベースにアクセスするのと同じアカウントで SQL Server エージェント ジョブを実行します。

そのアカウントのアクセス許可があまりにも制限されている場合 (これは良いことです!)、そのアプリとそのすべての SQL ジョブ (可能であれば) に対して 1 つのアカウントを作成し、そのアカウントですべての SQL ジョブを実行します。

各ステップを別のアカウントで実行することもできますが、私は一般的にそれを使用しません (どのアカウントで何が実行されているかを知り、理解するのが非常に難しくなります)。追加のアクセス許可が必要な特に機密性の高いステップを実行する必要があり、それらのアクセス許可が特定のシステム アカウントまたは何かにしか使用できない場合にのみ使用してください。

SQL Server エージェントの Windows サービスを実行するアカウントは、実際には、ジョブ ステップを実行する対象には影響しません。

したがって、実際には 2 つのアカウントに要約されます。

  • SQL Server エージェントの Windows サービスを実行するには、1 つのアカウントが必要です。これは、サービスを実行、開始、停止するための十分な権限が必要なマシン/サーバー上の Windows アカウントです。LocalSystem、ネットワーク サービス、またはその他の Windows を使用します。サービスを実行するために必要なアカウント

  • もう 1 つのアカウントは、SQL Server エージェントの手順を実行するためのアカウントです。これは通常、SQL Server アカウント (Windows アカウントに基づく場合があります) であり、SQL Server 内でジョブを実行するのに十分な権限が必要です。たとえば、アクセスが必要です。データベースオブジェクトとすべてに。SQL Server ジョブを実行するアプリごとにアカウントを 1 つだけ持つように努めます。これにより、作業がずっと楽になります!

マルク

PS: ステップを実行するユーザーを設定するには、[ジョブ ステップ プロパティ] ダイアログの [詳細設定] ページを使用して、ポップアップ ウィンドウからユーザーを選択する必要があります。

代替テキスト

于 2009-08-01T11:18:19.550 に答える
4

SQL Serverでクレデンシャルを作成できます([セキュリティ]の下の[Mgt Studio]を使用)。次に、SQLエージェントでプロキシを作成してこれらの資格情報を使用し、プロキシで使用できるジョブステップの種類を指定します。次に、ジョブステップ自体でそのプロキシを使用するかどうかを選択できます。

だから...私はさまざまなSSISパッケージのアカウントを作成して、SQLエージェントサービスアカウントの特権を低く保ち、わずかに高い特権を持つプロキシされたクレデンシャルを使用できるようにします(ただし、管理者ではなく、他のシステムに接続するための十分な権限があります) 、ファイルシステムを含む)。

ロブ

于 2009-08-01T12:46:58.140 に答える