適用対象:SQL Server
Azure SQL Managed Instance
重要
Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance T-SQL と SQL Server の違いに関するページ、または「SQL Managed Instance 内での SQL Agent ジョブの制限事項」を参照してください。
このトピックでは、Microsoft SQL Server エージェント ジョブの所有権を別のユーザーに再割り当てする方法について説明します。
他のユーザーにジョブの所有権を付与する方法:
開始する前に
制限事項と制約事項
ジョブを作成するには、ユーザーが SQL Server エージェント固定データベース ロールのメンバーであるか、固定サーバー ロール sysadmin である必要があります。 ジョブは、その所有者または sysadmin ロールのメンバーによってのみ編集できます。 SQL Server エージェント固定データベース ロールの詳細については、「SQL Server エージェント固定データベース ロール 」を参照してください。
ジョブの所有者を変更するには、システム管理者である必要があります。
ジョブを別のログインに割り当てると、新しい所有者がジョブを正常に実行するための十分なアクセス許可を持っているわけではありません。
安全
セキュリティ上の理由から、ジョブの定義を変更できるのは、ジョブ所有者または sysadmin ロールのメンバーだけです。 sysadmin 固定サーバー ロールのメンバーのみが、ジョブの所有権を他のユーザーに割り当てることができ、ジョブ所有者に関係なく任意のジョブを実行できます。
手記
ジョブの所有権を、sysadmin 固定サーバー ロールのメンバーではないユーザーに変更し、ジョブがプロキシ アカウント (SSIS パッケージの実行など) を必要とするジョブ ステップを実行している場合は、ユーザーがそのプロキシ アカウントにアクセスできることを確認してください。そうしないと、ジョブは失敗します。
権限
詳細については、「SQL Server エージェント セキュリティの実装」を参照してください。
SQL Server Management Studio の使用
他のユーザーにジョブ の所有権を付与するには
オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続 し、そのインスタンスを展開します。
SQL Server エージェントを展開し、ジョブを展開し、そのジョブを右クリックして、プロパティをクリックします。
[所有者] 一覧で、ログインを選びます。 ジョブの所有者を変更するには、システム管理者である必要があります。
ジョブを別のログインに割り当てると、新しい所有者がジョブを正常に実行するための十分なアクセス許可を持っているわけではありません。
Transact-SQL の使用
他のユーザーにジョブ の所有権を付与するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
ツール バーの [新しいクエリ ] をクリックします。
クエリ ウィンドウで、sp_manage_jobs_by_login (Transact-SQL) システム ストアド プロシージャを使用する次のステートメントを入力します。 次の例では、すべてのジョブを
danw
からfrançoisa
に再割り当てします。USE msdb ; GO EXEC dbo.sp_manage_jobs_by_login @action = N'REASSIGN', @current_owner_login_name = N'danw', @new_owner_login_name = N'françoisa' ; GO
SQL Server 管理オブジェクトの使用
他のユーザーにジョブ の所有権を付与するには
- Visual Basic、Visual C#、PowerShell などのプログラミング言語を使用して、ジョブ クラスを呼び出します。 コード例については、「SQL Server エージェントでの自動管理タスクのスケジュール設定」を参照してください。