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 DNS 記錄,用於指派 Cloud SQL 執行個體的主機名稱。您可以透過下列任一方式建立主機名稱:

    • Cloud DNS:使用 Cloud DNS 建立指向執行個體的網域名稱。
    • 自訂 DNS 區域:如果您管理自己的 DNS 區域,請建立 A 記錄,將偏好的主機名稱對應至執行個體的 IP 位址。
    • 本機主機名稱對應:修改系統的 hosts 檔案,為執行個體建立自訂別名。
  • 兩個現有的 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 登入資訊。這是設定報表伺服器資料庫時,報表伺服器設定管理員要求的第二次登入。 這必須是現有的 SQL Server 登入資訊,且不得與設定登入資訊相同。
--report-database 這是必要旗標,執行個體上現有或新的報表資料庫名稱。 報表資料庫名稱不得包含特定特殊字元,例如空格、方括號和非英文字元。
--duration (選用步驟) SSRS 租約的有效時數,您可以在這段期間執行 SSRS 設定。 介於 1 到 12 小時之間。例如 4h 5 小時

REST v1

您可以使用 REST API 取得執行個體的 SSRS 租約。如要取得 SSRS 租約,請指定下列項目:
  • 兩種不同的 SQL Server 登入方式:設定登入和服務登入
  • 報表資料庫名稱
  • 租約有效期間

只有 DURATION 欄位為選填。詳情請參閱「 AcquireSsrsLeaseContext」:

  • PROJECT_ID:專案的 ID。
  • INSTANCE_NAME:執行個體的名稱。
  • SETUP_LOGIN:在 SSRS 設定期間用來連線至 SQL Server 執行個體的 SQL Server 登入資訊。這是設定報表伺服器資料庫時,在報表伺服器設定管理員中要求的第一個登入。
  • SERVICE_LOGIN:報表伺服器在 SSRS 設定期間用來連線至報表伺服器資料庫的 SQL Server 登入資訊。這是設定報表伺服器資料庫時,報表伺服器設定管理員要求的第二次登入。
  • REPORT_DATABASE:執行個體上現有或新的報表資料庫名稱。 Microsoft 不允許報表資料庫名稱包含特定特殊字元,例如空格、方括號和非英文字元。
  • DURATION:選用。SSRS 租約的有效時數,您可以在這段期間執行 SSRS 設定。 介於 1 到 12 小時之間,例如 4h

HTTP 方法和網址:

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 租約,請指定下列項目:
  • 兩種不同的 SQL Server 登入方式:設定登入和服務登入
  • 報表資料庫名稱
  • 租約有效期間

只有 DURATION 欄位為選填。詳情請參閱「 AcquireSsrsLeaseContext」:

  • PROJECT_ID:專案的 ID。
  • INSTANCE_NAME:執行個體的名稱。
  • SETUP_LOGIN:在 SSRS 設定期間用來連線至 SQL Server 執行個體的 SQL Server 登入資訊。這是設定報表伺服器資料庫時,在報表伺服器設定管理員中要求的第一個登入。
  • SERVICE_LOGIN:報表伺服器在 SSRS 設定期間用來連線至報表伺服器資料庫的 SQL Server 登入資訊。這是設定報表伺服器資料庫時,報表伺服器設定管理員要求的第二次登入。
  • REPORT_DATABASE:執行個體上現有或新的報表資料庫名稱。 Microsoft 不允許報表資料庫名稱包含特定特殊字元,例如空格、方括號和非英文字元。
  • DURATION:選用。SSRS 租約的有效時數,您可以在這段期間執行 SSRS 設定。 介於 1 到 12 小時之間,例如 4h

HTTP 方法和網址:

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 的主機上,開啟 Reporting Services 設定管理員。
  2. 連線至本機報表伺服器執行個體。
  3. 按一下「變更資料庫」
    1. 輸入在 Cloud DNS 中建立的 SQL Server 主機名稱,以及用於 SSRS 租約的設定登入 SQL Server 登入憑證。
    2. 輸入新報表伺服器資料庫的名稱,或用於 SSRS 租約的現有報表資料庫。
    3. 輸入用於 SSRS 租約的服務登入 SQL Server 登入憑證。
    4. 按一下「下一步」,然後完成最後一個步驟。
  4. 如果尚未設定,請設定「網路服務網址」和「網路入口網址」。網頁入口應會在幾秒內成功載入。

發布 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 方法和網址:

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 方法和網址:

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

限制

  • 設定報表資料庫時,不支援 Active Directory 登入。
  • 報表資料庫名稱只能包含英數字元和連字號。
  • 您必須取得租約,才能透過報表伺服器設定管理員變更用於連線至報表資料庫的登入資訊。
  • 如果資料庫是由服務登入程序處理,在 SSRS 設定完成和租約發布之間,匯入 SQL 檔案和刪除複製資料庫作業可能會失敗。
  • 您必須刪除並重新建立資料庫使用者,才能登入匯入的報表資料庫。這是因為匯入資料庫中的現有使用者不屬於新執行個體。
  • 在 SSRS 中為向外擴充部署新增報表伺服器時,您必須為每個代管報表伺服器的新 Windows VM 取得並發布 SSRS 租約。每個 Cloud SQL 執行個體都必須使用現有的報表資料庫,設定新的報表資料庫。
  • 每次想在報表伺服器設定管理員中變更報表伺服器資料庫的登入憑證時,都必須建立新的租約。