本文將為您介紹如何使用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主機
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列單擊帳號管理。
選擇主機帳號頁簽,單擊目標帳號操作列下的遠端連線(主)。
在彈出的遠端連線對話方塊中,輸入主機帳號密碼。
單擊確定。
單擊確定後,系統會產生一個WebShell登入地址並自動登入到SQL Server執行個體主機。系統會以彈窗形式開啟一個新WebShell頁面,頁面開啟時可能會被瀏覽器攔截,如果出現此情況,請設定瀏覽器視窗的攔截方式為始終允許,以確保頁面正常顯示。頁面顯示如下:
步驟二:配置並使用SSRS服務
前提條件
在SQL Server主機中配置SSRS服務前,請確保SQL Server Reporting Services(MSSQLSERVER)服務狀態為開啟且運行中。查看或修改SSRS服務狀態的方法,請參見查看或修改SSRS服務狀態。
注意事項
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]
操作步驟
使用超級許可權帳號登入SQL Server執行個體,並執行以下命令。
DISABLE TRIGGER [_$$_tr_$$_rds_alter_database] ON ALL SERVER;
說明如何串連SQL Server執行個體,請參見串連SQL Server執行個體。
單擊>Reporting Services Configuration Manager。
在彈出的對話方塊中,確認報表伺服器名稱並單擊Connect。
說明如果您的RDS SQL Server執行個體系列為高可用系列或叢集系列,在串連報表時可能會因為資料庫鏡像或可用性群組的原因而失敗。如遇到該問題,請參見本文注意事項解決。
在左側導覽列根據您的業務情況設定Service Accout(服務帳號)、Web Service URL(Web服務URL)。
說明配置方法,請參見官方文檔。
在左側導覽列選擇Database,然後單擊右側的Change Database,在主機中建立新的報表伺服器資料庫。
選擇Create a new report server database,單擊Next。
確認伺服器名稱,配置以下參數,單擊Next。
配置項
說明
Server Name
伺服器名稱,固定配置,無需修改。
Authentication Type
選擇身分識別驗證類型,請選項SQL Server Account。
Username
請填寫RDS SQL Server執行個體使用者帳號頁簽下已建立的超級許可權帳號。
Password
請填寫RDS SQL Server執行個體使用者帳號頁簽下超級許可權帳號的密碼。
填寫報表伺服器資料庫名稱並選擇指令碼使用的語言,單擊Next。
設定賬戶串連報表伺服器的憑據,單擊next。
確認摘要,單擊Next,等待報表伺服器資料庫建立完成,單擊Finish。
使用超級許可權帳號登入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;
查看或修改SSRS服務狀態
登入SQL Server主機,在搜尋欄中輸入
services.msc
開啟服務視窗。在本地服務視窗中,查看
SQL Server Reporting Services (MSSQLSERVER)
的運行狀態(Status)。說明SSRS服務啟動類型說明如下:
Manual:服務需要手動啟動,不會在系統啟動時自動啟動。
Automatic:服務會在系統啟動時自動啟動。
Automatic (Delayed Start):服務會在系統啟動後一段時間內自動啟動。
Disabled:服務已被禁用,無法啟動。
(可選)修改SSRS服務運行狀態,並啟動服務。
雙擊服務,在彈出的對話方塊中,修改Startup type屬性。
右鍵服務,在彈出的對話方塊中,單擊Start。
查看修改後的SSRS服務運行狀態。
常見問題
Q:是否可以使用API介面擷取RDS執行個體主機名稱和主機WebShell登入地址?
A:您可以先使用DescribeDBInstanceIpHostname介面擷取IpHostnameInfos(RDS執行個體主機名稱),再使用DescribeHostWebShell介面擷取LoginUrl(主機WebShell登入地址)。
擷取到的登入連結僅在兩分鐘內有效,因此請務必在擷取後立即使用,否則將無法成功登入主機。
如果連結失效,請重新調用API擷取最新的登入連結。