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 SQL 登入帳戶:設定登入帳戶和服務登入帳戶。如要建立登入帳戶,請參閱
gcloud sql users create。如要使用 Windows 驗證,您必須使用受管理 Active Directory,將 SQL Server 執行個體和執行 SSRS 的主機加入網域。詳情請參閱「透過 Cloud SQL 使用代管的 Microsoft AD」。
程序
如要在 Cloud SQL 中設定 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 登入資訊。這是設定報表伺服器資料庫時,在 Report Server Configuration Manager 中要求的第一個登入。
- 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/acquireSsrsLeaseJSON 要求主體:
{ "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 登入資訊。這是設定報表伺服器資料庫時,在 Report Server Configuration Manager 中要求的第一個登入。
- 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/acquireSsrsLeaseJSON 要求主體:
{ "acquireSsrsLeaseContext": { "setupLogin": SETUP_LOGIN, "serviceLogin": SERVICE_LOGIN, "reportDatabase": REPORT_DATABASE, "duration": DURATION, } }
設定 SSRS
如要設定 SSRS,請按照下列步驟操作:
- 在安裝 SSRS 的主機上,開啟 Reporting Services 設定管理員。
- 連線至本機報表伺服器執行個體。
- 按一下「變更資料庫」。
- 輸入在 Cloud DNS 中建立的 SQL Server 主機名稱,以及用於 SSRS 租用的設定登入的 SQL Server 登入憑證。
- 輸入新報表伺服器資料庫的名稱,或用於 SSRS 租約的現有報表資料庫。
- 輸入用於 SSRS 租約的服務登入 SQL Server 登入憑證。
- 按一下「下一步」,然後完成最後一個步驟。
- 如果尚未設定,請設定「Web Service URL」和「Web Portal 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 方法和網址:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/releaseSsrsLeaseREST 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 執行個體都必須使用現有的報表資料庫,設定新的報表資料庫。
- 每次想在報表伺服器設定管理員中變更報表伺服器資料庫的登入憑證時,都必須建立新的租約。
常見問題
以下各節將說明與 SSRS 相關的常見問題。
設定和租賃機制
以下各節有助於解決設定和 SSRS 租約問題。
如何使用 Cloud SQL 設定 SSRS?
您需要在獨立的 Windows 主機 (例如 Compute Engine VM) 上安裝 SSRS。接著,將 SSRS 設為使用 Cloud SQL 執行個體做為 ReportServer 和 ReportServerTempDB 資料庫。如果您使用 Cloud SQL 管理設定,「SSRS 租約」是這個程序的重要環節。
什麼是 SSRS 租約?為何需要 SSRS 租約?
SSRS 設定通常需要 sysadmin 權限,但 Cloud SQL 不會授予使用者這項權限。租用機制會暫時將必要的高權限授予指定的 SQL Server 登入帳戶 (例如 --setup-login),以完成資料庫設定。
您可以使用 gcloud sql instances acquire-ssrs-lease 取得租約,然後使用 gcloud sql instances release-ssrs-lease 發布租約。租約的期限可設定。
驗證
下一節將協助解決驗證問題。
設定時可以使用 Windows 驗證 (Microsoft Active Directory) 嗎?
否,您必須在取得租約和設定報表伺服器資料庫時,使用 --setup-login 和 --service-login 參數的 SQL Server 登入資訊。這個初始設定程序不支援 Windows 登入。
設定時需要 SQL 登入資訊,但如果 Cloud SQL 執行個體和 SSRS 主機都已加入下列其中一種網域類型,您或許可以使用 Windows 驗證存取報表:
限制
下一節將協助解決限制或上限相關問題。
使用 SSRS 搭配 Cloud SQL 時有哪些限制?
- 資料庫設定階段不會有任何 Microsoft Active Directory 登入作業。
- 報表資料庫名稱只能包含英數字元和連字號。
- 如要變更服務帳戶憑證,您必須取得新的租約。
- 擴充部署作業需要為每個新的 SSRS 主機執行租用程序。
- 匯入現有報表伺服器資料庫時,需要手動重新對應服務登入使用者。
費用考量事項
下一節將說明價格考量事項。
授權相關費用是多少?
- Cloud SQL 執行個體必須具備 SQL Server 授權。
- 由於 SSRS 是在獨立的 Windows 電腦上執行,請確認該電腦上的 Windows 作業系統和所有 SQL Server 元件都已取得適當授權。根據 Microsoft 的政策,在個別伺服器上執行 SSRS 可能需要額外的 SQL Server 授權。
自動化
以下章節有助於解決與自動化相關的問題。
是否可以自動執行 SSRS 主機的安裝和設定程序?
您可以使用 gcloud CLI 或 REST API,在 Cloud SQL 中執行作業來取得及釋放 SSRS 租約。
在 Windows 環境中安裝及設定 SSRS 時,通常需要透過 Reporting Services Configuration Manager 介面手動操作,因此難以實現完整的端對端自動化。
詳情請參閱「安裝及設定 SSRS」。
維護
以下章節有助於解決維護相關問題。
使用 SSRS 可能會涉及哪些管理和維護活動?
開始之前,請先考量與個別 SSRS 伺服器相關的持續管理負擔。您必須負責管理、修補及保護執行 SSRS 服務的 Windows VM。Cloud SQL 只會管理資料庫執行個體。