web-dev-qa-db-ja.com

Windows Server2008で管理者としてSQLServer2005ジョブを実行する

C:\ foo.batという仕事があります。

Windowsエクスプローラーからジョブを実行すると、失敗します。ファイルを右クリックして[管理者として実行...]をクリックすると、ジョブは成功します。

SQL Serverエージェントでジョブをセットアップすると、失敗します。管理者としてジョブを実行する方法がわかりません。

3
John Oxley

基本的にすべてのジョブへのローカル管理者アクセスを許可するローカル管理者アカウントを使用するようにSQLServerエージェントサービスを設定するのではなく、SQL2005の新機能である資格情報とプロキシを使用してセキュリティを強化できます。

SQLインスタンスの場合:

  1. [セキュリティ]で、[資格情報]を右クリックし、[新しい資格情報]をクリックします
  2. 資格情報を入力し(資格名=何でも、IDはマシンのローカル管理者権限を持つアカウント、パスワード=アカウントのパスワード、パスワードの確認=もう一度入力)、[OK]をクリックします。
  3. SQL Serverエージェントで、[プロキシ]を展開します
  4. オペレーティングシステム(CmdExec)を右クリックし、[新しいプロキシ]をクリックします
  5. プロキシに名前を付け、手順2で作成した資格情報を選択し、[OK]をクリックします
  6. [新しいプロキシ]ウィンドウで[原則]をクリックし、このプロキシにアクセスできるようにするSQLログインとロールを選択します
  7. ジョブを作成する
  8. ジョブにステップを追加し、「オペレーティングシステム(CmdExec)」と入力するように設定します。
  9. [実行]ドロップダウンで、手順4と5で作成したプロキシを選択します。

それはあなたのためにそれをするはずです。 SQLエージェントサービス全体をローカル管理者として実行するよりもはるかに安全です。

6
squillman

わかりました[〜#〜] not [〜#〜]それを行う良い方法です。

手順1:UACを無効にする

完了。

マシン全体でUACを無効にする必要がありますが、もっと良い方法があるはずです。

0
John Oxley

このリンクを参照してください SQL Serverエージェントサービスのアカウントの選択 管理者のアカウントを使用するようにSQL Serverエージェントサービスを設定できるため、そのbatファイルを実行しても問題はありません。

0
Bogdan_Ch