次の方法で共有


RSExecRole を作成する

Reporting Services は、 RSExecRole と呼ばれる定義済みのデータベース ロールを使用して、レポート サーバー データベースに対するレポート サーバーのアクセス許可を付与します。 RSExecRole ロールは、レポート サーバー データベースと共に自動的に作成されます。 原則として、このロールを変更したり、他のユーザーをこのロールに割り当てたりすることはできません。 ただし、レポート サーバー データベースを新しい SQL Server データベース エンジンまたは別の SQL Server データベース エンジンに移動する場合は、Master システム データベースと MSDB システム データベースでロールを再作成する必要があります。

次の手順を使用して、次の手順を実行します。

  • マスター システム データベースに RSExecRole を作成してプロビジョニングします。

  • MSDB システム データベースに RSExecRole を作成してプロビジョニングします。

ここで説明する手順は、レポート サーバー データベースを準備する方法としてスクリプトの実行や WMI コードの作成を考えていないユーザーを対象としています。 大規模な配置を管理していて、データベースを定期的に移動する予定がある場合は、上記の操作を自動的に実行するスクリプトを作成する必要があります。 詳細については、「 Reporting Service WMI プロバイダーへのアクセス」を参照してください。

開始する前に

  • データベースを移動した後に復元できるように、暗号化キーをバックアップします。 この手順は、 RSExecRoleを作成してプロビジョニングする機能に直接影響しませんが、作業を確認するにはキーのバックアップが必要です。 詳細については、「 Back Up and Restore Reporting Services Encryption Keys」を参照してください。

  • SQL Server インスタンスに対する sysadmin アクセス許可を持つユーザー アカウントとしてログオンしていることを確認します。

  • 使用する予定のデータベース エンジン インスタンスに SQL Server エージェント サービスがインストールされ、実行されていることを確認します。

  • reportservertempdb データベースと reportserver データベースをアタッチします。 実際のロールを作成するためにデータベースをアタッチする必要はありませんが、作業をテストする前にアタッチする必要があります。

RSExecRoleを手動で作成する手順は、レポート サーバーのインストールを移行するコンテキスト内で使用することを目的としています。 レポート サーバー データベースのバックアップや移動などの重要なタスクについては、このトピックでは取り上げませんが、データベース エンジンのドキュメントに記載されています。

Master で RSExecRole を作成する

Reporting Services では、SQL Server エージェント サービスの拡張ストアド プロシージャを使用して、スケジュールされた操作をサポートします。 次の手順では、プロシージャの実行アクセス許可を RSExecRole ロールに付与する方法について説明します。

Management Studio を使用してマスター システム データベースに RSExecRole を作成するには

  1. SQL Server Management Studio を開始し、レポート サーバー データベースをホストしているデータベース エンジン インスタンスに接続します。

  2. [データベース]を開きます。

  3. [システム データベース]を開きます。

  4. Masterを開きます。

  5. [セキュリティ]を開きます。

  6. [ロール]を開きます。

  7. [データベース ロール]を右クリックして [新しいデータベース ロール]をクリックします。 [全般] ページが表示されます。

  8. [ ロール名] に「 RSExecRole」と入力します。

  9. [ 所有者] に「 DBO」と入力します。

  10. セキュアブルをクリックします。

  11. [検索] をクリックします。 [オブジェクトの追加] ダイアログ ボックスが表示されます。 既定では、 [特定のオブジェクト] オプションが選択されています。

  12. OK をクリックします。 [オブジェクトの選択] ダイアログ ボックスが表示されます。

  13. [ オブジェクトの種類] をクリックします

  14. [ 拡張ストアド プロシージャ] をクリックします。

  15. OK をクリックします。

  16. 参照をクリックしてください。

  17. 拡張ストアド プロシージャの一覧を下にスクロールし、次を選択します。

    1. xp_sqlagent_enum_jobs

    2. xp_sqlagent_is_starting

    3. xp_sqlagent_notify

  18. [ OK] をクリックし、もう一度 [ OK] をクリックします

  19. [ 実行 ] 行の [ 許可 ] 列で、チェック ボックスをオンにし、[ OK] をクリックします。

  20. 残りの各ストアド プロシージャに同じ操作を繰り返します。 RSExecRole には、3 つのストアド プロシージャすべてに対する実行アクセス許可が付与されている必要があります。

データベース ロールのプロパティ ページの

MSDB での RSExecRole の作成

Reporting Services は、スケジュールされた操作をサポートするために、SQL Server エージェント サービスのストアド プロシージャを使用し、システム テーブルからジョブ情報を取得します。 次の手順では、プロシージャに対する実行権限およびテーブルでの選択権限を RSExecRole に付与する方法を説明します。

MSDB システム データベースに RSExecRole を作成するには

  1. MSDB のストアド プロシージャとテーブルに対する権限を付与する場合は、同様の手順を繰り返します。 手順を簡略化するために、ストアド プロシージャとテーブルを個別にプロビジョニングします。

  2. MSDBを開きます。

  3. [セキュリティ]を開きます。

  4. [ロール]を開きます。

  5. [データベース ロール]を右クリックして [新しいデータベース ロール]をクリックします。 [全般] ページが表示されます。

  6. [ロール名] に「 RSExecRole」と入力します。

  7. [所有者] に「 DBO」と入力します。

  8. セキュラブル をクリックします。

  9. 追加をクリックします。 [オブジェクトの追加] ダイアログ ボックスが表示されます。 [オブジェクトの指定] オプションが既定で選択されます。

  10. OK をクリックします。

  11. [ オブジェクトの種類] をクリックします

  12. [ ストアド プロシージャ] をクリックします。

  13. OK をクリックします。

  14. 参照をクリックしてください。

  15. 項目の一覧を下にスクロールし、次を選択します。

    1. カテゴリーを追加する

    2. sp_add_job

    3. sp_add_jobschedule

    4. sp_add_jobserver

    5. sp_add_jobstep

    6. sp_delete_job

    7. sp_help_category コマンド

    8. sp_help_job

    9. sp_help_jobschedule

    10. sp_verify_job_identifiers

  16. [ OK] をクリックし、もう一度 [ OK] をクリックします

  17. 最初のストアド プロシージャ sp_add_category を選択します。

  18. [ 実行 ] 行の [ 許可 ] 列で、チェック ボックスをオンにし、[OK] をクリック します

  19. 残りの各ストアド プロシージャに同じ操作を繰り返します。 RSExecRole には、10 個のストアド プロシージャすべてに対する実行アクセス許可が付与されている必要があります。

  20. [セキュリティ保護可能なリソース] タブで、[ 追加 ] をもう一度クリックします。 [オブジェクトの追加] ダイアログ ボックスが表示されます。 [オブジェクトの指定] オプションが既定で選択されます。

  21. OK をクリックします。

  22. [ オブジェクトの種類] をクリックします

  23. [テーブル] をクリック します。

  24. OK をクリックします。

  25. 参照をクリックしてください。

  26. 項目の一覧を下にスクロールし、次を選択します。

    1. syscategories

    2. sysjobs

  27. [ OK] をクリックし、もう一度 [ OK] をクリックします

  28. 最初のテーブル syscategories を選択します。

  29. [ 選択 ] 行の [ 許可 ] 列で、チェック ボックスをオンにし、[OK] をクリック します

  30. sysjobs テーブルに同じ操作を繰り返します。 RSExecRole には、両方のテーブルに対する選択権限を付与する必要があります。

レポート サーバー データベースの移動

ロールを作成したら、レポート サーバー データベースを新しい SQL Server インスタンスに移動できます。 詳細については、「 レポート サーバー データベースを別のコンピューターに移動する (SSRS ネイティブ モード)」を参照してください。

データベース エンジンを SQL Server 2019 (15.x) にアップグレードする場合は、データベースを移動する前または後にアップグレードできます。

レポート サーバー データベースは、レポート サーバーが接続すると、自動的に SQL Server 2019 (15.x) にアップグレードされます。 データベースをアップグレードするために特定の手順を実行する必要はありません。

暗号化キーを復元して作業内容を確認する

レポート サーバー データベースをアタッチした場合は、次の手順を実行して作業を確認できます。

データベースの移動後にレポート サーバーの操作性を確認するには

  1. Reporting Services 構成ツールを起動して、レポート サーバーに接続します。

  2. [ データベース] をクリックします。

  3. [ データベースの変更] をクリックします。

  4. [ 既存のレポート サーバー データベースの選択] をクリックします。

  5. データベース エンジンのサーバー名を入力します。 レポート サーバー データベースを名前付きインスタンスにアタッチした場合は、 <servername>\<instancename> の形式でインスタンス名を入力する必要があります。

  6. [接続テスト]をクリックします。

  7. [次へ] をクリックします。

  8. [データベース] で、レポート サーバー データベースを選択します。

  9. [ 次へ ] をクリックし、ウィザードを完了します。

  10. [ 暗号化キー] をクリックします。

  11. [復元] をクリックします。

  12. レポート サーバー データベースに格納されている資格情報および接続情報の暗号化を解除するために使用される対称キーのバックアップ コピーが含まれている厳密な名前のキー ファイル (.snk) を選択します。

  13. パスワードを入力し、[ OK] をクリックします。

  14. [ レポート マネージャーの URL] をクリックします。

  15. リンクをクリックしてレポート マネージャーを開きます。 レポート サーバー データベースのレポート サーバー アイテムが表示されます。

こちらもご覧ください

レポート サーバー データベースを別のコンピューターに移動する (SSRS ネイティブ モード)Reporting Services 構成マネージャー (ネイティブ モード)ネイティブモードのレポート サーバー データベースの作成 (SSRS 構成マネージャー)Reporting Services 暗号化キーのバックアップと復元