次の方法で共有


Give Others Ownership of a Job

適用対象: SQL Server Azure SQL Managed Instance

重要

現在、Azure SQL Managed Instance によって、すべてではありませんが、ほとんどの SQL Server エージェントの機能がサポートされています。 詳細については、Azure SQL Managed Instance と SQL Server の T-SQL の相違点に関するページを参照してください。

このトピックでは、Microsoft SQL Server エージェントのジョブの所有権を他のユーザーに再割り当てする方法について説明します。

はじめに

制限事項と制約事項

ジョブを作成するには、 SQL Server エージェント固定データベース ロールか sysadmin 固定サーバー ロールのメンバーである必要があります。 ジョブの編集は、ジョブの所有者または sysadmin ロールのメンバーのみが行うことができます。 SQL Server エージェント固定データベース ロールの詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。

ジョブの所有者を変更するには、システム管理者でなければなりません。

別のログインにジョブを割り当てた場合に、新しい所有者がそのジョブを正常に実行できる十分な権限を持っていないこともあります。

セキュリティ

セキュリティを確保するため、ジョブの所有者または sysadmin ロールのメンバーだけがジョブの定義を変更できます。 sysadmin 固定サーバー ロールのメンバーのみが別のユーザーにジョブの所有権を割り当てることができ、ジョブの所有者とは無関係にジョブを実行できます。

注意

ジョブの所有権を sysadmin 固定サーバー ロールのメンバーでないユーザーに変更し、そのジョブがプロキシ アカウントを必要とするジョブ ステップを実行する ( SSIS パッケージの実行など) 場合は、ユーザーがそのプロキシ アカウントにアクセスできることを確認してください。アクセスできない場合、ジョブは失敗します。

アクセス許可

詳細については、「 SQL Server エージェントのセキュリティの実装」をご覧ください。

SQL Server Management Studio を使用する

ジョブの所有権を他のユーザーに割り当てるには

  1. オブジェクト エクスプローラー で、 SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. [SQL Server エージェント][ジョブ]の順に展開し、ジョブを右クリックして [プロパティ]をクリックします。

  3. [所有者] ボックスの一覧で、ログインを選択します。 ジョブの所有者を変更するには、システム管理者でなければなりません。

    別のログインにジョブを割り当てた場合に、新しい所有者がそのジョブを正常に実行できる十分な権限を持っていないこともあります。

Transact-SQL の使用

ジョブの所有権を他のユーザーに割り当てるには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. ツール バーの [新しいクエリ] をクリックします。

  3. クエリ ウィンドウで、 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 管理オブジェクトの使用

ジョブの所有権を他のユーザーに割り当てるには

  1. Visual Basic、Visual C#、PowerShell などのプログラミング言語で Job クラスを呼び出します。 コード例については、「 SQL Server エージェントでの自動管理タスクのスケジュール設定」を参照してください。

参照

ジョブの実装
ジョブの作成