レポート サーバー データベースの管理
Reporting Services の環境では、2 つの SQL Server リレーショナル データベースが内部記憶域として使用されます。 既定では、データベース名は ReportServer と ReportServerTempdb になります。 ReportServerTempdb は、レポート サーバーのプライマリ データベースと共に作成され、一時データ、セッション情報、およびキャッシュされたレポートを格納する目的に使用されます。
Reporting Services でのデータベースの管理には、レポート サーバー データベースのバックアップと復元、および機密データの暗号化と暗号化解除に使用する暗号化キーの管理が含まれます。
レポート サーバー データベースを管理するために、SQL Server ではさまざまなツールを用意しています。
レポート サーバー データベースのバックアップや復元、移動、または復旧を行うには、SQL Server Management Studio、Transact-SQL コマンド、またはデータベース コマンド プロンプト ユーティリティを使用します。 手順については、SQL Server オンライン ブックの「別のコンピューターへのレポート サーバー データベースの移動」を参照してください。
既存のデータベース コンテンツを他のレポート サーバー データベースにコピーする場合、レポート サーバー データベースのコピーをアタッチして、別のレポート サーバー インスタンスで使用します。 また、SOAP 呼び出しを使用して新しいデータベースにレポート サーバー コンテンツを再作成するスクリプトを作成して、実行することもできます。 スクリプトを実行するには、rs ユーティリティを使用します。
レポート サーバーとレポート サーバー データベースの接続の管理、および特定のレポート サーバー インスタンスで使用しているデータベースの検索を行うには、Reporting Services 構成ツールの [データベースのセットアップ] ページを使用します。 レポート サーバー データベースへのレポート サーバーの接続の詳細については、「レポート サーバー データベース接続の構成 (ネイティブ モード)」を参照してください。
SQL Server のログインとデータベースの権限
レポート サーバー データベースは、レポート サーバーによって内部的に使用されます。 データベースへの接続は、レポート サーバー サービスによって行われます。 レポート サーバー データベースに対するレポート サーバー接続を構成するには、Reporting Services 構成ツールを使用します。
データベースに対するレポート サーバー接続の資格情報には、サービス アカウント、Windows のローカルまたはドメイン ユーザー アカウント、または SQL Server データベース ユーザーを使用できます。 接続に使用するアカウントには、既存のアカウントを選択する必要があります。Reporting Services ではアカウントは作成されません。
レポート サーバー データベースに対する SQL Server ログインは、指定したアカウントに対して自動的に作成されます。
データベースに対する権限も自動的に構成されます。 Reporting Services 構成ツールでは、アカウントまたはデータベース ユーザーが、レポート サーバー データベースの Public ロールおよび RSExecRole ロールに割り当てられます。 RSExecRole には、データベース テーブルにアクセスしたり、ストアド プロシージャを実行したりするための権限が割り当てられています。 レポート サーバー データベースを作成すると、RSExecRole が master および 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)
概念
レポート サーバー データベース接続の構成 (ネイティブ モード)
Reporting Services のバックアップおよび復元操作
Reporting Services レポート サーバー (ネイティブ モード)