SQL Server Reporting Services(SSRS)

Cloud SQL は、ページ分けされたレポートの作成、デプロイ、管理に役立つ SQL Server Reporting Services(SSRS)をサポートしています。

このページでは、Cloud SQL で SSRS を使用するための前提条件、設定手順、制限事項について説明します。

始める前に

Cloud SQL で SSRS を使用するには、次のものが必要です。

  • レポート サーバー データベースをホストする Cloud SQL インスタンス
  • SSRS をインストールして実行するホスト。Compute Engine VM でも、Compute Engine を使用しないホストでもかまいません。インストール手順については、SQL Server Reporting Services をインストールするをご覧ください。
  • Cloud SQL インスタンスのホスト名を割り当てる Cloud DNS レコード。ホスト名は、次のいずれかの方法で作成できます。

    • Cloud DNS: Cloud DNS を使用して、インスタンスに接続するホスト名を作成します。
    • カスタム DNS ゾーン: 独自の DNS ゾーンを管理している場合は、優先するホスト名をインスタンスの IP アドレスにマッピングする A レコードを作成します。
    • ローカルホスト名のマッピング: システムの hosts ファイルを変更して、インスタンスのカスタム エイリアスを作成します。
  • 既存の 2 つの Cloud SQL ログイン(設定ログインとサービス ログイン)。ログインを作成するには、gcloud sql users create をご覧ください。

    Windows 認証を使用する場合は、マネージド Active Directory を使用して SQL Server インスタンスと SSRS を実行しているホストに参加する必要があります。詳細については、Cloud SQL でマネージド Microsoft AD を使用するをご覧ください。

手順

Cloud SQL で SSRS を設定するには、次の操作を行います。

  1. SSRS リースを取得します
  2. SSRS を設定します
  3. SSRS リースを解放します

SSRS リースを取得する

SSRS の設定中に、昇格された権限が必要になります。インスタンスの SSRS リースを取得するには、次のコマンドを使用します。

gcloud

リースを取得するには、次のコマンドを使用します。

gcloud sql instances acquire-ssrs-lease INSTANCE_NAME \
--project=PROJECT_NAME \
--setup-login=SETUP_LOGIN \
--service-login=SERVICE_LOGIN \
--report-database=REPORT_DATABASE \
--duration=DURATION \

次の表に、このオペレーションの gcloud パラメータを示します。

パラメータ 説明 使用できる値 デフォルト値
--setup-login 必須。SSRS の設定中にインスタンスに接続するために使用されるログイン。これは、レポート サーバー データベースの設定時にレポート サーバーの構成マネージャーでリクエストされる最初のログインです。 既存の SQL Server ログイン(sqlserver など)にする必要があります。 なし
--service-login 必須。SSRS の設定時にレポート サーバーがレポート サーバー データベースに接続するために使用する SQL Server ログイン。これは、レポート サーバー データベースの設定時にレポート サーバーの構成マネージャーでリクエストされる 2 回目のログインです。 これは、既存の SQL Server ログインであり、設定ログインとは別のものにする必要があります。 なし
--report-database 必須。インスタンス上の既存または新しいレポート データベース名。 レポート データベースの名前に使用できない特殊文字があります(スペース、かっこ、英語以外の文字など)。 なし
--duration 省略可。SSRS リースの有効期間(SSRS の設定を実行できる期間)。 1~12 時間で設定できます。例: 4h 5 時間

REST v1

REST API を使用すると、インスタンスの SSRS リースを取得できます。SSRS リースを取得するには、以下を指定します。
  • 2 つの異なる SQL Server ログイン(設定ログインとサービス ログイン)
  • レポート データベース名
  • リースの有効期間

DURATION フィールドのみ省略可能です。詳細については、AcquireSsrsLeaseContext をご覧ください。

  • PROJECT_ID: プロジェクトの ID。
  • INSTANCE_NAME: インスタンスの名前。
  • SETUP_LOGIN: SSRS の設定中に SQL Server インスタンスに接続するために使用される SQL Server ログイン。これは、レポート サーバー データベースの設定時にレポート サーバーの構成マネージャーでリクエストされる最初のログインです。
  • SERVICE_LOGIN: SSRS の設定時にレポート サーバーがレポート サーバー データベースに接続するために使用する SQL Server ログイン。これは、レポート サーバー データベースの設定時にレポート サーバーの構成マネージャーでリクエストされる 2 回目のログインです。
  • REPORT_DATABASE: インスタンスの既存または新しいレポート データベース名。レポート データベース名には、スペース、角かっこ、英語以外の文字など、特定の特殊文字を使用できません。
  • DURATION: 省略可。SSRS リースの有効期間(SSRS の設定を実行できる期間)。1~12 時間。例: 4h

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/acquireSsrsLease

リクエストの本文(JSON):

{
  "acquireSsrsLeaseContext": {
    "setupLogin": SETUP_LOGIN,
    "serviceLogin": SERVICE_LOGIN,
    "reportDatabase": REPORT_DATABASE,
    "duration": DURATION,
  }
}

REST v1beta4

REST API を使用すると、インスタンスの SSRS リースを取得できます。SSRS リースを取得するには、以下を指定します。
  • 2 つの異なる SQL Server ログイン(設定ログインとサービス ログイン)
  • レポート データベース名
  • リースの有効期間

DURATION フィールドのみ省略可能です。詳細については、AcquireSsrsLeaseContext をご覧ください。

  • PROJECT_ID: プロジェクトの ID。
  • INSTANCE_NAME: インスタンスの名前。
  • SETUP_LOGIN: SSRS の設定中に SQL Server インスタンスに接続するために使用される SQL Server ログイン。これは、レポート サーバー データベースの設定時にレポート サーバーの構成マネージャーでリクエストされる最初のログインです。
  • SERVICE_LOGIN: SSRS の設定時にレポート サーバーがレポート サーバー データベースに接続するために使用する SQL Server ログイン。これは、レポート サーバー データベースの設定時にレポート サーバーの構成マネージャーでリクエストされる 2 回目のログインです。
  • REPORT_DATABASE: インスタンスの既存または新しいレポート データベース名。レポート データベース名には、スペース、角かっこ、英語以外の文字など、特定の特殊文字を使用できません。
  • DURATION: 省略可。SSRS リースの有効期間(SSRS の設定を実行できる期間)。1~12 時間。例: 4h

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/acquireSsrsLease

リクエストの本文(JSON):

{
  "acquireSsrsLeaseContext": {
    "setupLogin": SETUP_LOGIN,
    "serviceLogin": SERVICE_LOGIN,
    "reportDatabase": REPORT_DATABASE,
    "duration": DURATION,
  }
}

SSRS を設定する

SSRS の設定手順は次のとおりです。

  1. SSRS がインストールされているホストでレポート サービスの構成マネージャーを開きます。
  2. ローカル レポート サーバー インスタンスに接続します。
  3. [Change Database] をクリックします。
    1. Cloud DNS で作成した SQL Server ホスト名と、SSRS リースに使用する設定ログイン用の SQL Server ログイン認証情報を入力します。
    2. SSRS リースに使用する新しいレポート サーバー データベースまたは既存のレポート データベースの名前を入力します。
    3. SSRS リースに使用するサービス ログイン用の SQL Server ログイン認証情報を入力します。
    4. [Next] をクリックして、最後のステップを完了します。
  4. まだ設定されていない場合は、ウェブサービスの URLウェブポータルの URLを構成します。ウェブポータルは数秒以内に正常に読み込まれます。

SSRS リースを解放する

リースを手動で解放することも、リースが期限切れになるまで待つこともできます。リースを解放すると、設定で使用するために昇格された権限が元に戻り、サービス ログインでレポート データベースに接続できるようになります。リースが期限切れになるか、手動で解放されるまで、サービス ログインはレポート データベースにアクセスできません。次のコマンドで SSRS リースを解放します。

gcloud

リースを解放するには、次のコマンドを使用します。

gcloud sql instances release-ssrs-lease INSTANCE_NAME \
--project=PROJECT_NAME

REST v1

REST API を使用すると、インスタンスの SSRS リースを解放できます。次のリクエストの例に示すように、インスタンス名とプロジェクト ID を指定する必要があります。

  • PROJECT_ID: プロジェクトの ID。
  • INSTANCE_NAME: インスタンスの名前。

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/releaseSsrsLease

REST v1beta4

REST API を使用すると、インスタンスの SSRS リースを解放できます。次のリクエストの例に示すように、インスタンス名とプロジェクト ID を指定する必要があります。

  • PROJECT_ID: プロジェクトの ID。
  • INSTANCE_NAME: インスタンスの名前。

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/releaseSsrsLease

制限事項

  • レポート データベースの設定では、Active Directory ログインはサポートされていません。
  • レポート データベース名に使用できるのは英数字とハイフンのみです。
  • レポート サーバーの構成マネージャーからレポート データベースへの接続に使用するログイン情報を変更するには、リースを取得する必要があります。
  • サービス ログインによって処理されるデータベースの場合、SSRS の設定が完了してからリースが解放されるまでの間に、sql ファイルのインポートと複製されたデータベースの削除オペレーションが失敗することがあります。
  • インポートしたレポート データベースで、サービス ログイン用のデータベース ユーザーを削除して再作成する必要があります。これは、インポートされたデータベースの既存のユーザーが新しいインスタンスに属していないためです。
  • SSRS でのスケールアウト デプロイ用に新しいレポート サーバーを追加する場合は、レポート サーバーをホストする新しい Windows VM ごとに SSRS リースを取得して解放する必要があります。各 Cloud SQL インスタンスでは、既存のレポート データベースを使用して新しいレポート データベースを構成する必要があります。
  • レポート サーバーの構成マネージャーでレポート サーバー データベースのログイン認証情報を変更するたびに、新しいリースを作成する必要があります。