レポート サーバー データベースを管理する (SSRS ネイティブ モード)

Reporting Services 展開では、2 つの SQL Server リレーショナル データベースが内部記憶域として使用されます。 既定では、データベースには ReportServer および ReportServerTempdb という名前が付けられています。 ReportServerTempdb は、レポート サーバーのプライマリ データベースと共に作成され、一時データ、セッション情報、およびキャッシュされたレポートを格納する目的に使用されます。

Reporting Services でのデータベースの管理には、レポート サーバー データベースのバックアップと復元が含まれます。 タスクには、機密データの暗号化と暗号化解除に使用される暗号化キーの管理も含まれます。

レポート サーバー データベースを管理するために、SQL Server ではさまざまなツールを用意しています。

  • SQL Server Management Studio、Transact-SQL コマンド、またはデータベース コマンド プロンプト ユーティリティを使用すると、次のことができます。

    • レポート サーバー データベースのバックアップまたは復元
    • レポート サーバー データベースの移動
    • レポート サーバー データベースの回復

    詳細については、「別のコンピューターへのレポート サーバー データベースの移動 (SSRS ネイティブ モード)」を参照してください。

  • 既存のデータベース コンテンツを他のレポート サーバー データベースにコピーする場合、レポート サーバー データベースのコピーをアタッチして、別のレポート サーバー インスタンスで使用します。 また、SOAP 呼び出しを使用して新しいデータベースにレポート サーバー コンテンツを再作成するスクリプトを作成して、実行することもできます。 スクリプトを実行するには、 rs ユーティリティを使用します。

  • レポート サーバーとレポート サーバー データベースの接続の管理を行うには、Reporting Services 構成ツールの [データベースのセットアップ] ページを使用します。 また、これを使用して、特定のレポート サーバー インスタンスで使用しているデータベースの検索を行うこともできます。 レポート サーバー データベースへのレポート サーバーの接続の詳細については、「レポート サーバー データベース接続の構成 (レポート サーバー構成マネージャー)」を参照してください。

SQL Server のログインとデータベースのアクセス許可

レポート サーバー データベースは、レポート サーバーによって内部的に使用されます。 データベースへの接続は、レポート サーバー サービスによって行われます。 レポート サーバー データベースに対するレポート サーバー接続を構成するには、Reporting Services 構成ツールを使用します。

データベースに対するレポート サーバー接続の資格情報には、サービス アカウント、Windows のローカルまたはドメイン ユーザー アカウント、または SQL Server データベース ユーザーを使用できます。 接続には、既存のアカウントを選択する必要があります。 Reporting Services ではアカウントは作成されません。

レポート サーバー データベースに対する SQL Server ログインは、指定したアカウントに対して自動的に作成されます。

データベースに対する権限も自動的に構成されます。 Reporting Services 構成ツールでは、アカウントまたはデータベース ユーザーが、レポート サーバー データベースの Public ロールおよび RSExecRole ロールに割り当てられます。 RSExecRole には、データベース テーブルにアクセスしたり、ストアド プロシージャを実行したりするための権限が割り当てられています。 レポート サーバー データベースを作成すると、RSExecRole がプライマリ データベースおよび msdb に作成されます。 RSExecRole は、レポート サーバー データベースの db_owner ロールのメンバーであるため、自動アップグレード プロセスなどで、レポート サーバーが自己のスキーマを更新することもできます。

レポート サーバー データベースの名前付け規則

プライマリ データベースを作成する際、データベースの名前は、「データベース識別子」に指定されている規則に従う必要があります。 一時データベースには、レポート サーバーのプライマリ データベース名に、Tempdb というサフィックスを追加した名前を使用する必要があります。 一時データベースに別の名前を選択することはできません。

レポート サーバーのデータベースは内部コンポーネントと見なされているため、レポート サーバー データベースの名前変更はサポートされません。 レポート サーバーのデータベース名を変更するとエラーが発生します。 具体的には、プライマリ データベースの名前を変更すると、データベース名が同期されていないという内容のエラー メッセージが表示されます。ReportServerTempdb データベースの名前を変更すると、レポートの実行時に次の内部エラーが発生します。

"レポート サーバーで内部エラーが発生しました。 詳細については、「エラー ログ」を参照してください。 (rsInternalError)

無効なオブジェクト名 ReportServerTempDB.dbo.PersistedStream

ReportServerTempdb の名前は内部的に保存され、ストアド プロシージャが内部的な操作を実行するときに使用されるため、このエラーが発生します。 一時データベースの名前を変更すると、ストアド プロシージャが正しく機能しなくなります。

レポート サーバー データベースのスナップショット分離を有効にする

レポート サーバー データベースのスナップショット分離を有効にすることはできません。 スナップショット分離を有効にした場合、"選択したレポートは、表示できる状態ではありません。 レポートが表示の準備中か、またはレポート スナップショットが利用できません" というエラーが発生します。

スナップショット分離を意図的に有効にしなくても、他のアプリケーションによって属性が設定されたり、model データベースのスナップショット分離が有効になっていたために、新しいデータベースがすべてその設定を引き継いでしまうことも考えられます。

レポート サーバー データベースのスナップショット分離を無効にするには、Management Studio を起動して、新しいクエリ ウィンドウを開き、次のスクリプトを貼り付けて実行します。

ALTER DATABASE ReportServer  
SET ALLOW_SNAPSHOT_ISOLATION OFF  
ALTER DATABASE ReportServerTempdb  
SET ALLOW_SNAPSHOT_ISOLATION OFF  
ALTER DATABASE ReportServer  
SET READ_COMMITTED_SNAPSHOT OFF  
ALTER DATABASE ReportServerTempDb  
SET READ_COMMITTED_SNAPSHOT OFF  

データベースのバージョンについて

Reporting Services では、データベースのバージョンについて明確な情報を入手できません。 ただし、データベースのバージョンは常に製品のバージョンと同期しているので、製品バージョンの情報からデータベースのバージョンが変更された時期がわかります。 Reporting Services の製品バージョンの情報は、ログ ファイルに現れるファイルのバージョン情報、すべての SOAP 呼び出しのヘッダー、およびレポート サーバーの URL に接続したとき (ブラウザーを開いて https://localhost/reportserver を参照したときなど) に示されます。

ネイティブ モードのレポート サーバー データベースの作成 (レポート サーバー構成マネージャー)
レポート サーバー サービス アカウントの構成 (レポート サーバーの構成マネージャー)
レポート サーバー データベース接続の構成 (レポート サーバーの構成マネージャー)
レポート サーバー データベースの作成 (レポート サーバーの構成マネージャー)
レポート サーバー構成マネージャー (ネイティブ モード)
Reporting Services のバックアップおよび復元操作
レポート サーバー データベース (SSRS ネイティブ モード)
Reporting Services のレポート サーバー (ネイティブ モード)
暗号化されたレポート サーバー データの格納 (レポート サーバーの構成マネージャー)
暗号化キーの構成と管理 (レポート サーバー構成マネージャー)