• 締切済み

SQL SERVER エージェントの権限

SQL SERVER エージェントのジョブにおいて、 各ジョブごとに実行権限を制御できないのでしょうか? 要するに、とあるAジョブを管理するaさんに bさんが管理するBジョブを実行できないようにする (見えなければなお良い)ができないのでしょうか? 初歩的な質問ですが、宜しくお願いします。

みんなの回答

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

ドキュメントを読んだのに試していないというのは、試す環境をお持ちでないということですか? 「できなくはない」というのはAgent Jobはスケジュール実行の目的で使うことの方が圧倒的に多く、 管理者以外に権限を渡す方が少ないと思っているから、そう書いたまでです。 (私自身も実務では管理者以外に権限を付与していません) まあ、これは多分に主観が入っているので、他意はありません。 管理者以外の人でもSQLAgentUserRole以上を割り当てれば、SQL ServerエージェントにSSMSから アクセスできるようになります。SQLAgentUserRoleであれば自分で作ったJob以外は見えませんし、 実行もできます。 もちろん、実行する内容自体に権限がない(ストアドやVBSを実行する権限がないなど)場合は実行してもエラーになるだけですが。

saboleader
質問者

お礼

有難うございます。 大変参考になりました。

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

できなくはないです。 sysadmin権限を与えてしまったユーザは何でもできますからどうしようもないですけど、それ以外のユーザならロールを割り当てることで、Agentへのアクセスを限定的に与えることができます。 ロールはmsdbにあります。 詳細は以下をご覧ください。 SQL Server エージェントのセキュリティの実装 http://msdn.microsoft.com/ja-jp/library/ms190926(SQL.90).aspx

saboleader
質問者

補足

「できなくはない」は理論上のお話でしょうか? 実例としての回答を頂きたく。 添付URLは勿論事前に参照していますが、 管理者権限以外がジョブの実行が可能ですか?

関連するQ&A

  • SQLサーバエージェントが見つからない

    SQL SERVER 2005 EXPRESS EDITION でSQLサーバエージェントが見つかりません。これはMSによって削除されたのでしょうか。

  • SQL Server エージェント ジョブ スケジュール

    SQL Server2005を使用しています。 SQL Sever エージェントのジョブ機能を使い、1日1回、データベースのバックアップ、1時間に1回、ログのバックアップを行うよう設定しています。 データベースのバックアップがスケジュールで指定した時刻に行われません。 ログのバックアップは1時間に1回、実行されています。 スケジュールで指定した時刻にバックアップが実行されるようにする設定方法を教えてください。 以上、よろしくお願いします。

  • SQL server エージェントについて

    Microsoft SQL server management studio 18でSQL serverエージェントを利用し、バックアップを取っております。 通常、PCの再起動を行ってもエージェントは自動で開始するよう設定しているのですが、 Windowsアップデートが絡む再起動を行った際に、自動で開始されない事があります。 (テストで何度か自分で再起動を行ってもエージェントは開始されます) このような現象の対処法をご存知の方はお教えいただけますと幸いです。 宜しくお願い致します。

  • エージェントのジョブの遅さ

    すいません、まだはじめたばかりで全然良くわからないのですが、 維持管理でこのSQL文で処理速度の遅さにひっかかっています。 自分で作ったものではないのでいまいちよくわかってないのですが、 エージェントのジョブで1日3回行っている処理、同じ件数(インデックスがまったく一緒)になるよう、INSERTをかける処理なのですが、 INSERT INTO TABLE_A SELECT AAA, BBB, CCC, 0, 0 FROM TABLE_B WHERE A + B + C NOT IN (SELECT A + B + C FROM TABLE_A) というようなTRANSACT SQLになっています。 TABLE_AにないものをTABLE_Bから持ってくるということだと思います。 件数は約13万件、なぜか1時間かかるようで、他の処理のレスポンスに影響が出てきています。 根本的にこういうやり方はまずいのでしょうか?処理を遅くする要因があるのでしょうか? もしあるようなら改善策を教えていただけると助かります。 環境はSQL SERVER 2005です。 どちらもA,B,Cにインデックスがあります ちょっと事情があって、大きくやり方を変えられないので、エージェントのジョブ内でもっと早くできる方法が知りたいです。 なにとぞ、よろしくお願いいたします。

  • SQL SERVER 2005のメンテナンスプラン実行エラーについて教えてください

    SQL SERVER 2005にてメンテナンスプランよりデータベースバックアップ(完全)を作成し実行をさせるとエラーとなってしまいます。 SQL SERVER エージェントの履歴を見ると下記の内容が表示されていました。 【SQL SERVER エージェントの履歴】 「10/21/2009 15:33:22,DBバックアップ.Subplan_1,エラー,0,SERVER02,DBバックアップ.Subplan_1,(ジョブの結果),,ジョブは失敗しました。 ジョブは ユーザー SERVER02\Administrator によって起動されました。最終実行ステップはステップ 1 (Subplan_1) でした。.,00:00:00,0,0,,,,0 10/21/2009 15:33:22,DBバックアップ.Subplan_1,エラー,1,SERVER02,DBバックアップ.Subplan_1,Subplan_1,,ステップ 1 の実行を開始できません (理由: 行 (1): 構文エラー). ステップは失敗しました。,00:00:00,0,0,,,,0」 他のサーバーで同じようにメンテナンスプランを作成し実行しても問題がありません。(SQL SERVER 2005のバージョン:9.0.3042) 実行エラーを起こすサーバーはディスク障害を起こし復旧後にSQLを再インストールしています。(SQL SERVER 2005のバージョン:9.0.1399) どのようにすれば正常に実行されるのでしょうか? 見づらい内容で申し訳ありませんが、ご教授の程よろしくお願い致します。

  • SQLの管理権限のあるユーザーを調べたい

    【理想】 既にSQLServerExpress2005以降(以下SQL)が入っているPCに対して、 SQLの管理者権限がないユーザーがインストーラーを実行した際、 ・このユーザーは管理権限がないこと ・管理権限があるユーザーは○○というユーザーなので、○○というユーザーで ログインし直してからインストールして欲しい というメッセージを出したい 【現状】 SQLをデータベースとして開発したソフトウェアがあり、 インストーラーを実行すると、SQLと開発したソフトウェアが自動インストールされるようになっています。(既にSQLがインストールされている場合はSQLはインストールしない) インストーラーは、Inno Setupを利用しています。 ここで問題になっているのが、 既にSQLがインストールされているPCにインストールしてもらった際に、 SQLの管理者ではないユーザーでインストールしようとするとエラーになることです。 ユーザーに上記を伝えて、権限のあるユーザーでやり直してもらって(もしくは一旦SQLをアンインストールして)、再度上記インストーラーを実行してもらう必要があるのですが、権限のあるユーザーが誰か答えられるユーザーがほどんどいません。 今は、インストーラーを実行した際、既にインストールされていれば、 仮のデータベースを作るテストをしてみて、出来ればOK、出来なければ、「インストール出来ないから管理権限のあるユーザーでログインしてほしい」のようなメッセージを出してセットアップを中止するようにしています。 インストーラーを実行した際、管理権限のあるユーザーが誰なのかが分かる方法はないでしょうか。色々試してみたのですが、「管理者権限がない」という応答しか返って来ません。 同様の悩み(対応)は他のソフトでも同様だと思いますが、 どのように解決しているのかを教えて頂ければ助かります。 分かる方ご教授お願い致します。

  • SQL Server 2005 のエージェントが開始できません

    SQL Server エージェント上で右クリック⇒開始を 押下したところ、 「サーバXXXXXXでサービス SQLSERVERAGENT を開始できません」 追加情報 ⇒ アクセスが拒否されました(ObjectExplorer) と表示され、サービスが開始できませんでした。。 エージェント自体は、以下のコマンドで有効にしております。 exec sp_configure 'Agent XPs', '1'; --エージェントの設定を有効にする reconfigure -- 設定をインストール どなたか、ご回答頂けないでしょうか? なにとぞ、よろしくお願い申し上げます。

  • SQL Server 2008のジョブで次のコマンドを実行したら、いつ

    SQL Server 2008のジョブで次のコマンドを実行したら、いつまでも終了しません。 "C:\Program Files\Microsoft Office\Office12\Office12\MSACCESS.exe" "D:\XXX\PM.accdb" /x M_Create 現状としては、 1、タスクマネジャーを確認したら、Accessがちゃんと立ち上がりました。また、PM.accdbと同じフォルダにPM.laccdbというファイルも生成されました。 2、ジョブの履歴を見たら、実行ユーザーはジョブの持ち主ではなく、「サーバー名\SYSTEM」というものです。これはSQLServerエージェントサービスアカウントのことですね。 3、上記コマンドをコマンドプロンプトで実行すると、無事終了しました。 4、関連ファイルやフォルダにはEveryOneにフル権限を与えています。 全般的に見ると、実行ユーザーのせいではないかと思いますが、同じようなことを経験した方がいらっしゃいますか。 何の情報でもいいですから、ぜひ教えてください。 よろしくお願いいたします。

  • SQLエージェントが開始できません

    SQL Server 2008 Standard Edition使用です。 Windows2003 Serverのアップデート後、再起動を行ってから、SQLエージェントが 開始できなくなっています。 AdministratorでSQL Management Studioにログインして、SQL Server Agentを右クリックしても 「開始」「停止」「再起動」の文字がアクティブにならず、選択できません。 よろしくお願いいたします。

  • SQL Server 2005 Express インストール後、VBS

    SQL Server 2005 Express インストール後、VBS中のsqlcmdが実行されない ExpressエディションではSQL Agentが無いため、JOB(ストアドでの集計処理)をWINDOWSタスクから実行しようとしています。 タスクスケジュールSYSTEM権限でVBSファイルを実行するように登録しているのですが、 タスク自体の実行は正常に完了し、VBSでの処理でもエラーはでていないのですが、VBS中のsqlcmdが実行されておりません。(プロファイラで確認してもストアドが実行されている形跡なし) VBSを直接実行(アドミニ権限USER)するとVBS中のsqlcmdが実行されます。 SQL Server 2005 Expressをインストール後、端末の再起動を実行をするとタスクからの実行でVBS中のsqlcmdが実行されるようになるのですが。。 何か再起動なしでタスクからの実行がうまくいく方法は無いでしょうか? ご教授宜しくお願い致します。 環境Widows 2003 Server SP1