使用 Webshell 访问 SQL Server 主机并利用 SSRS

2023-12-13 06:07:49

RDS SQL Server提供Webshell功能,用户可以通过Web界面登录RDS SQL Server
实例的操作系统。通过Webshell,用户可以在RDS SQL Server实例上执行命令、上传和下载文件以及执行各种操作。Webshell 提供了一种方便高效的远程管理方法,尤其是在 SSH 客户端不可用时。

SQL Server Reporting Services (SSRS) 是一种 Microsoft 企业级报告服务,使用户能够从 SQL Server 数据库和其他数据源生成各种类型的报告。这些报表包括表格报表、图表报表、交叉表报表和多维数据报表。SSRS 可以连接到 RDS SQL Server 数据库,并将其用作数据源来生成不同类型的报表。这种组合可实现高效的数据管理、分析和报告生成,以支持业务决策和管理。

场景

例如,假设您是一家中小型企业的数据库管理员,负责管理公司的 SQL Server 数据库。随着公司工作负载和数据库访问请求的增加,需要使用 SSRS 来分析和监视数据库。但是,由于公司的服务器位于其他地方,因此无法直接登录主机进行这些操作。

最终访问RDS SQL Server实例所在的主机。登录后,可以使用 SSRS 轻松管理和操作 SQL Server 数据库。

先决条件

确保RDS实例满足以下要求:

? RDS实例位于中国(张家口)以外的区域。

? RDS实例:基础版、集群版、RDS高可用版。如果您的RDS实例为RDS高可用版,请确保该实例为SQL Server 2012及以上版本。

? RDS实例属于通用型或独享型实例规格族。不支持共享实例规格族。

? RDS实例位于VPC中。

RDS实例的创建时间满足以下要求:

? 如果RDS实例运行RDS高可用版或RDS集群版,则该实例创建时间为1年2021月<>日(含)之后。

? 如果RDS基础版为RDS基础版,则创建时间为2年2022月<>日(含)之后。

注意:您可以在RDS控制台基本信息页面的“状态”区域查看RDS实例的创建时间参数。

? 使用阿里云账号登录RDS实例。

? 授予创建系统管理员帐户的权限。

? 已创建系统管理员帐户。

? 创建帐户类型为“系统管理员帐户”的主机帐户。

注意

RDS实例的系统管理员账号或主机账号拥有超出RDS管理范围的权限。RDS实例创建此类账号后,系统不会为RDS实例提供阿里云
服务等级协议(SLA)中指定的服务可用性。

步骤一:使用Webshell登录RDS主机

1. 转到实例页面。在顶部菜单栏,选择RDS实例所在的地域。然后,找到RDS实例,单击实例ID。
2. 在弹出的页面左侧导航栏,单击账号管理
3. 在显示的页面上,单击“主持人帐户”选项卡。找到所需的主机帐户,然后单击操作列中的远程连接(主)。
4. 在“远程连接”对话框中,输入主机帐户的密码。

1

5. 单击“确定”。

系统生成Webshell地址,并通过该URL自动连接RDS实例所在的主机。系统在弹出的窗口中显示一个webshell页面。该页面可能被浏览器阻止。如果页面被阻止,您可以配置浏览器以允许显示该页面。示例如下图所示。

2

步骤 2:在主机上配置和使用 SSRSStep <>: Configure and use the SSRS on the host

先决条件

在为 RDS 实例所在的主机配置 SSRS 之前,请确保 SQL Server Reporting Services (MSSQLSERVER)?已启用并正在运行

3

使用说明

当您的RDS实例运行RDS高可用版或RDS集群版时,RDS实例处于镜像状态或Always On可用性组状态。这可能会导致 SSRS 配置中出现错误。如果出现错误,您需要使用系统管理员账号登录RDS实例,并执行以下语句解决错误。

注意:RDS实例会定期构建镜像或可用组。配置 SSRS 时,可能会出现多个配置错误。每次报错时,您需要使用系统管理员账号登录RDS实例,并执行相关语句。

-- Execute the following statements to disable the image of the database on an RDS instance that runs RDS High-availability Edition:
ALTER DATABASE [ReportServer] SET PARTNER OFF;
ALTER DATABASE [ReportServerTempDB] SET PARTNER OFF;
-- Execute the following statements to remove the database from the ag-rds availability group of an RDS instance that runs RDS Cluster Edition:
ALTER AVAILABILITY GROUP [ag-rds] REMOVE DATABASE [ReportServer];
ALTER AVAILABILITY GROUP [ag-rds] REMOVE DATABASE [ReportServerTempDB];

这些语句可确保 SSRS 可以正确配置和运行。如果您的RDS集群版运行,配置SSRS后,您需要使用系统管理员账号登录RDS实例,并执行以下语句将数据库添加到可用组中。这有助于确保高可用性以及正确的数据库备份和还原。

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

程序

1. 使用系统管理员账号登录RDS实例,执行如下语句:

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

2. 单击“

4

>”图标,然后选择“Reporting Services 配置管理器”。

5

3. 在弹出的对话框中,确认报表服务器的名称,然后单击“连接”。

6

注意:如果您的RDS实例运行RDS高可用版或RDS集群版,则由于镜像或可用性组状态,可能无法将RDS实例连接到报表服务器。

4. 在左侧导航栏,单击“服务账号Web服务URL”,根据业务需要配置相关参数。

7

5. 在左侧导航栏,单击数据库。在页面右侧,单击“更改数据库”以在主机上创建报表服务器数据库

a) 选择“创建新的报表服务器数据库”,然后单击“下一步”。

b) 确认服务器名称,配置以下参数,然后单击“下一步”。

8

参数描述
服务器名称服务器的名称。名称无法更改。
身份验证类型身份验证类型。选择“SQL Server 帐户”。
用户名为RDS实例创建的主机账号的用户名。
密码为RDS实例创建的主机账号的密码。

c) 输入报表服务器数据库的名称,并选择脚本的语言。然后,单击“下一步”。

9

d) 指定要连接到报表服务器的帐户的凭据,然后单击“下一步”。

e) 确认“摘要”页面上的信息,然后单击“下一步”。等到创建报表服务器数据库。然后,单击“完成”。

10

6. 使用系统管理员账号登录RDS实例,执行以下语句:

USE [master]
GO
-- Change the recovery model of the database to FULL. Use the NO_WAIT parameter to allow the change to immediately take effect.
ALTER DATABASE [ReportServer] SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE [ReportServerTempDB] SET RECOVERY FULL WITH NO_WAIT
GO
-- Enable a specific trigger on all databases on the server.
ENABLE TRIGGER [_$$_tr_$$_rds_alter_database] ON ALL SERVER;

7. 后续操作(如创建数据源)根据业务需要而有所不同。

查看或更改 SSRS 的状态

1. 登录RDS实例所在的主机。在搜索框中,输入以打开“服务”。services.msc

11

2. 在“服务(本地)”窗口中,查看 SQL 的状态。Server Reporting Services (MSSQLSERVER)

12

注意:

SSRS 支持以下启动类型:

? 手动:系统启动时服务不会自动启动,必须手动启动。
? 自动:服务在系统启动时自动启动。
? 自动(延迟启动):服务在系统启动一段时间后自动启动。
??禁用:服务已禁用且无法启动。

3. 可选。更改 SSRS 的状态并启动服务。

a) 双击该服务。在弹出的对话框中,修改“启动类型”参数的值。

13

b) 右键单击该服务。在弹出的对话框中,单击“开始”。

14

c) 查看 SSRS 的新状态。

15

文章来源:https://blog.csdn.net/jiuhebaobao/article/details/134949241
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。