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。
程序
如要在 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 登入資訊。這是設定報表伺服器資料庫時,報表伺服器設定管理員要求的第一個登入資訊。
- 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 登入資訊。這是設定報表伺服器資料庫時,報表伺服器設定管理員要求的第一個登入資訊。
- 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 設定管理員。
- 連線至本機報表伺服器執行個體。
- 按一下「Change Database」(變更資料庫)。
- 輸入在 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限制
- 您無法在 Cloud SQL 上託管或執行 SSRS 報表。
- 設定報表資料庫時,不支援 Active Directory 登入。
- 報表資料庫名稱只能包含英數字元和連字號。
- 您必須取得租約,才能透過報表伺服器設定管理員,變更用於連線至報表資料庫的登入資訊。
- 如果資料庫是由服務登入處理,則在 SSRS 設定完成和租約釋出之間,匯入 SQL 檔案和刪除複製資料庫作業可能會失敗。
- 您必須刪除並重新建立資料庫使用者,才能在匯入的報表資料庫上登入服務。這是因為匯入資料庫中的現有使用者不屬於新執行個體。
- 在 SSRS 中為向外擴充部署作業新增報表伺服器時,您必須為每個託管報表伺服器的新 Windows VM 取得及釋出 SSRS 租約。每個 Cloud SQL 執行個體都需要您使用現有的報表資料庫,設定新的報表資料庫。
- 每次在報表伺服器設定管理員中變更報表伺服器資料庫的登入憑證時,都必須建立新的租約。
常見問題
以下各節提供 SSRS 相關常見問題的解答。
設定和租約機制
以下各節將說明設定和 SSRS 租約問題。
如何設定 SSRS 搭配 Cloud SQL?
您必須在獨立的 Windows 主機 (例如 Compute Engine VM) 上安裝 SSRS。接著,設定 SSRS,將 Cloud SQL 執行個體用於 ReportServer 和 ReportServerTempDB 資料庫。如果您使用 Cloud SQL 管理設定,「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) 進行設定嗎?
不行,取得租約及設定報表伺服器資料庫時,必須使用 SQL Server 登入資訊做為 --setup-login 和 --service-login 參數。這項初始設定程序不支援 Windows 登入。
雖然設定時需要 SQL 登入資訊,但如果 Cloud SQL 執行個體和 SSRS 主機都加入下列其中一種網域類型,您或許可以使用 Windows 驗證存取報表:
限制
以下章節將說明限制或限制相關問題。
搭配使用 SSRS 和 Cloud SQL 有哪些限制?
- 資料庫設定階段沒有任何 Microsoft Active Directory 登入資訊。
- 報表資料庫名稱只能包含英數字元和連字號。
- 如要變更服務帳戶憑證,必須取得新的租約。
- 向外擴充部署作業需要為每個新的 SSRS 主機執行租用程序。
- 匯入現有的報表伺服器資料庫時,必須手動重新對應服務登入使用者。
費用考量事項
以下章節將說明定價考量。
授權相關費用有哪些?
- Cloud SQL 執行個體需要 SQL Server 授權。
SSRS 會在獨立的 Windows 機器上執行,因此請確認該機器上的 Windows OS 和任何 SQL Server 元件都已取得適當授權。根據 Microsoft 的政策,在獨立伺服器上執行 SSRS 可能需要額外的 SQL Server 授權。Cloud SQL 也提供預先建構的 SQL Server 映像檔。
詳情請參閱「 Google Cloud上的 SQL Server」。
自動化
以下章節將協助您解決自動化相關問題。
可以自動執行 SSRS 主機安裝和設定程序嗎?
您可以使用 gcloud CLI 或 REST API,在 Cloud SQL 中執行作業,取得及釋出 SSRS 租約。
在 Windows 環境中安裝及設定 SSRS 時,通常需要透過 Reporting Services Configuration Manager 介面手動操作,因此較難完全自動化。
詳情請參閱「安裝及設定 SSRS」。
維護
以下章節將協助您解決維護相關問題。
使用 SSRS 時,可能需要進行哪些管理和維護活動?
開始之前,請考量與獨立 SSRS 伺服器相關的持續管理負擔。您必須負責管理、修補及保護執行 SSRS 服務的 Windows VM。Cloud SQL 只會管理資料庫執行個體。