全部產品
Search
文件中心

ApsaraDB RDS:通過WebShell登入SQL Server主機並使用SSRS報表格服務

更新時間:Oct 25, 2024

本文將為您介紹如何使用RDS執行個體的主機帳號登入到RDS SQL Server執行個體主機中。您可以在登入主機後使用SSRS(SQL Server Reporting Services)服務管理和操作SQL Server資料庫。

背景資訊

RDS SQL Server提供了WebShell功能,允許使用者通過Web介面登入到RDS SQL Server執行個體的作業系統中,並在該作業系統中執行命令、上傳下載檔案等操作。WebShell功能方便使用者對RDS SQL Server執行個體的管理和維護,特別是在無法使用SSH用戶端的情況下,提供了一種方便快捷的遠端管理方式。

SQL Server Reporting Services(SSRS)是微軟的一項企業級報表格服務,它可以協助使用者從SQL Server資料庫和其他資料來源中產生各種類型的報表,例如表格報表、圖表報表、交叉報表、多維資料報表等。SSRS服務可以串連到RDS SQL Server資料庫並將其作為資料來源,從而產生各種類型的報表。這種聯合使用可以讓企業和使用者更高效地管理和分析資料,並產生各種類型的報表,從而支援業務決策和管理。

應用情境

假設您是一家中小型企業的資料庫管理員,負責管理公司的SQL Server資料庫。由於公司的業務量不斷增加,資料庫的訪問量也越來越大。為了更好地管理和最佳化資料庫,您需要使用SSRS服務來分析和監控資料庫。但是由於公司的伺服器主機不在本地,您無法直接登入到主機進行操作。

基於以上情況,您可以使用RDS控制台建立一個主機帳號,並通過該帳號登入WebShell,最終登入到RDS SQL Server執行個體主機中。您可以在登入主機後使用SSRS服務輕鬆地管理和操作SQL Server資料庫,及時掌握資料庫的情況,從而更好地支援公司的業務發展。

前提條件

  • RDS執行個體需滿足如下條件:

    • 執行個體系列:基礎系列、高可用系列(2012及以上版本)、叢集系列

    • 執行個體規格:通用型、獨享型(不支援共用型)

    • 計費方式:訂用帳戶或隨用隨付(不支援Serverless執行個體)

    • 網路類型:專用網路。如需變更網路類型,請參見更改網路類型

    • 執行個體建立時間:

      • 高可用系列和叢集系列執行個體的建立時間需在2021年01月01日或之後。

      • 基礎系列執行個體的建立時間需在2022年09月02日或之後。

      說明

      建立時間可在基本資料頁內的運行狀態中查看。

  • 登入帳號必須為阿里雲主帳號

  • 已開通超級帳號許可權。開通方法,請參見開通SA許可權

  • 使用者帳號頁簽下,已建立超級許可權帳號(System Admin)。建立方法,請參見建立SA帳號

  • 主機帳號頁簽下,已建立帳號類型為超級許可權帳號(sysadmin)的主機帳號。建立方法,請參見建立主機帳號

    警告

    SA許可權帳號為SQL Server資料庫的最高許可權,主機帳號為主機的最高許可權,由於超級許可權帳號或主機帳號所擁有的操作許可權已超出了RDS SQL Server的控制範圍,因此對於建立了該類型帳號的RDS SQL Server執行個體,該執行個體不再享受SLA保障,執行個體運行環境歸屬於使用者,但執行個體正常使用和售後服務仍不受影響對於未建立該類型帳號的RDS SQL Server執行個體,仍享有完整SLA保障

步驟一:通過WebShell登入RDS SQL Server主機

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在左側導覽列單擊帳號管理

  3. 選擇主機帳號頁簽,單擊目標帳號操作列下的遠端連線(主)

  4. 在彈出的遠端連線對話方塊中,輸入主機帳號密碼。

    image..png

  5. 單擊確定

    單擊確定後,系統會產生一個WebShell登入地址並自動登入到SQL Server執行個體主機。系統會以彈窗形式開啟一個新WebShell頁面,頁面開啟時可能會被瀏覽器攔截,如果出現此情況,請設定瀏覽器視窗的攔截方式為始終允許,以確保頁面正常顯示。頁面顯示如下:

    image..png

步驟二:配置並使用SSRS服務

前提條件

在SQL Server主機中配置SSRS服務前,請確保SQL Server Reporting Services(MSSQLSERVER)服務狀態為開啟且運行中。查看或修改SSRS服務狀態的方法,請參見查看或修改SSRS服務狀態

image..png

注意事項

RDS SQL Server執行個體系列為高可用系列或叢集系列時,由於資料庫處於鏡像或Always On可用性群組狀態,可能會導致SSRS服務配置出錯。若出現該問題,請使用超級許可權帳號登入SQL Server執行個體,並執行以下命令進行處理:

說明

由於RDS執行個體會定期搭建鏡像或可用性群組,因此在配置SSRS服務時,可能會出現多次配置錯誤的情況。為解決該問題,每次出現配置錯誤時,您都需要使用超級許可權帳號登入SQL Server執行個體,並執行以下命令進行處理。

-- 高可用版執行個體(關閉資料庫的鏡像)
ALTER DATABASE [ReportServer] SET PARTNER OFF;
ALTER DATABASE [ReportServerTempDB] SET PARTNER OFF;

-- 叢集版執行個體(從ag-rds可用組中移除資料庫)
ALTER AVAILABILITY GROUP [ag-rds] REMOVE DATABASE [ReportServer];
ALTER AVAILABILITY GROUP [ag-rds] REMOVE DATABASE [ReportServerTempDB];

上述操作的目的是確保SSRS服務能夠正常配置和運行。對於叢集系列執行個體,為了保證資料的高可用性和資料庫的正常備份恢複,請在SSRS配置完成後,使用超級許可權帳號登入SQL Server執行個體,並執行以下命令將資料庫重新添加到可用性群組中。

ALTER AVAILABILITY GROUP [AG-RDS] ADD DATABASE [ReportServer]
ALTER AVAILABILITY GROUP [AG-RDS] ADD DATABASE [ReportServerTempDB]

操作步驟

  1. 使用超級許可權帳號登入SQL Server執行個體,並執行以下命令。

    DISABLE TRIGGER [_$$_tr_$$_rds_alter_database] ON ALL SERVER;
    說明

    如何串連SQL Server執行個體,請參見串連SQL Server執行個體

  2. 單擊image..png>Reporting Services Configuration Manager

    image..png

  3. 在彈出的對話方塊中,確認報表伺服器名稱並單擊Connect

    image..png

    說明

    如果您的RDS SQL Server執行個體系列為高可用系列或叢集系列,在串連報表時可能會因為資料庫鏡像或可用性群組的原因而失敗。如遇到該問題,請參見本文注意事項解決。

  4. 在左側導覽列根據您的業務情況設定Service Accout(服務帳號)、Web Service URL(Web服務URL)。

    image..png

    說明

    配置方法,請參見官方文檔

  5. 在左側導覽列選擇Database,然後單擊右側的Change Database,在主機中建立新的報表伺服器資料庫。

    1. 選擇Create a new report server database,單擊Next

    2. 確認伺服器名稱,配置以下參數,單擊Next

      image..png

      配置項

      說明

      Server Name

      伺服器名稱,固定配置,無需修改。

      Authentication Type

      選擇身分識別驗證類型,請選項SQL Server Account

      Username

      請填寫RDS SQL Server執行個體使用者帳號頁簽下已建立的超級許可權帳號。

      Password

      請填寫RDS SQL Server執行個體使用者帳號頁簽下超級許可權帳號的密碼。

    3. 填寫報表伺服器資料庫名稱並選擇指令碼使用的語言,單擊Next

      image..png

    4. 設定賬戶串連報表伺服器的憑據,單擊next

    5. 確認摘要,單擊Next,等待報表伺服器資料庫建立完成,單擊Finish

      image..png

  6. 使用超級許可權帳號登入SQL Server執行個體,並執行以下命令。

    USE [master]
    GO
    -- 更改資料庫的復原模式為FULL,使用NO_WAIT參數使更改立即生效
    ALTER DATABASE [ReportServer] SET RECOVERY FULL WITH NO_WAIT
    GO
    ALTER DATABASE [ReportServerTempDB] SET RECOVERY FULL WITH NO_WAIT
    GO
    -- 用於啟用伺服器上所有資料庫上的一個特定觸發器
    ENABLE TRIGGER [_$$_tr_$$_rds_alter_database] ON ALL SERVER;
  7. 後續建立資料來源等操作取決於您的業務需求,具體操作請參見步驟6~步驟8官方文檔

查看或修改SSRS服務狀態

  1. 登入SQL Server主機,在搜尋欄中輸入services.msc開啟服務視窗。

    image..png

  2. 在本地服務視窗中,查看SQL Server Reporting Services (MSSQLSERVER)的運行狀態(Status)。

    image..png

    說明

    SSRS服務啟動類型說明如下:

    • Manual:服務需要手動啟動,不會在系統啟動時自動啟動。

    • Automatic:服務會在系統啟動時自動啟動。

    • Automatic (Delayed Start):服務會在系統啟動後一段時間內自動啟動。

    • Disabled:服務已被禁用,無法啟動。

  3. (可選)修改SSRS服務運行狀態,並啟動服務。

    1. 雙擊服務,在彈出的對話方塊中,修改Startup type屬性。

      image..png

    2. 右鍵服務,在彈出的對話方塊中,單擊Start

      image..png

    3. 查看修改後的SSRS服務運行狀態。

      image..png

常見問題

Q:是否可以使用API介面擷取RDS執行個體主機名稱和主機WebShell登入地址?

A:您可以先使用DescribeDBInstanceIpHostname介面擷取IpHostnameInfos(RDS執行個體主機名稱),再使用DescribeHostWebShell介面擷取LoginUrl(主機WebShell登入地址)。

說明
  • 擷取到的登入連結僅在兩分鐘內有效,因此請務必在擷取後立即使用,否則將無法成功登入主機。

  • 如果連結失效,請重新調用API擷取最新的登入連結。