スキーマ A からログインしている間に、スキーマ B のオフライン JOBS とオフライン JOBS を実行する必要があります。
いくつかの助成金を使用してこれに到達できますか?
DBMS_JOB を使用している場合、選択肢は限られています。ドキュメントによると:
「ジョブに関連付けられたデータベース権限はありません。DBMS_JOB では、ユーザーは自分のジョブ以外のジョブにアクセスできません。」
回避策があります: DBMS_IJOB。これは SYS が所有しており、実在の人物が使用することを想定していないため、文書化されていません。これには気をつけたいと思います。文書化されていないため、非公式の情報源に依存しています。Adam Donahue は、このパッケージに関する有益なブログを書きました。 ここでそれを読んでください。
別の方法として、独自のインフラストラクチャを構築することもできます。スキーマ B は手作業で作成されたパッケージを所有してジョブを管理し、そのパッケージに対する EXECUTE をスキーマ A に付与します。
DBMS_SCHEDULER (10g で導入) は、もう少し柔軟性を提供します。ええと、実際には、「複雑さ」と読むより多くの柔軟性があります。スケジュールされたジョブ、および特権と役割のマトリックスで責任を細分化するさまざまな方法があります。 詳細をご覧ください。
そのままでは、スキーマ A がスキーマ B のすべてのジョブを管理できるようにする方法はありません。DBMS_SCHEDULERにはさまざまなANY
レベルの権限が関連付けられていますが、それらは非常に強力であり、単一のスキーマに対する権限に制限することはできません。最も粗雑なレベルでは、B は単純にこれを行うことができます。
grant alter on bjob1 to A;
grant alter on bjob2 to A;
等々。これにより、A は、実行中のジョブを停止する以外は、B のジョブに対してほとんどのアクションを実行できます。