RSExecRole を作成する方法

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

ここで説明する手順に従って、次の操作を実行します。

  • master システム データベースでの RSExecRole の作成と準備

  • MSDB システム データベースでの RSExecRole の作成と準備

注意注意

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

開始前の準備

  • データベースを移動した後に復元できるように、暗号化キーをバックアップします。この手順は RSExecRole の作成と準備には直接影響しませんが、作業を確認するためにはキーのバックアップが必要です。詳細については、「暗号化キーのバックアップおよび復元」を参照してください。

  • SQL Server インスタンスでの sysadmin 権限を持つユーザー アカウントでログオンしていることを確認します。

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

  • reportservertempdb および reportserver データベースをアタッチします。実際のロールを作成するためにデータベースをアタッチする必要はありませんが、作業を確認する場合は事前にデータベースをアタッチする必要があります。

RSExecRole を手動で作成する手順は、レポート サーバー インストールの移行というコンテキストで使用されることを目的としています。レポート サーバー データベースのバックアップや移動などの重要なタスクは、このトピックでは取り上げませんが、データベース エンジンのドキュメントで説明されています。移行プロセスの全タスクの詳細については、「移行 (Reporting Services)」を参照してください。

master での RSExecRole の作成

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

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

  1. SQL ServerManagement 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. sp_add_category

    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 インスタンスに移動できます。詳細については、「別のコンピューターへのレポート サーバー データベースの移動」を参照してください。

データベース エンジンを SQL Server 2008 にアップグレードする場合、そのアップグレードはデータベースを移動する前と後のどちらでも実行できます。

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

暗号化キーの復元と作業の確認

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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