写点什么

通过 WebShell 登录 SQL Server 主机并使用 SSRS 报表服务

  • 2024-04-11
    陕西
  • 本文字数:2959 字

    阅读完需:约 10 分钟

通过WebShell登录SQL Server主机并使用SSRS报表服务

背景信息


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 实例需满足如下条件:

  • 实例所在地域:除华北 3(张家口)外的其他地域均支持使用该功能。

  • 实例系列:基础系列、高可用系列(2012 及以上版本)、集群系列

  • 实例规格:通用型、独享型(不支持共享型)

  • 网络类型:专有网络。如需变更网络类型,请参见更改网络类型

实例创建时间:

  • 高可用系列和集群系列实例的创建时间需在 2021 年 01 月 01 日或之后。


  • 基础系列实例的创建时间需在 2022 年 09 月 02 日或之后。


说明:创建时间可在基本信息页内的运行状态中查看。


  • 登录账号必须为阿里云主账号


  • 已开通超级账号权限。开通方法,请参见开通SA权限


  • 已创建超级权限账号(System Admin)。创建方法,请参见创建SA账号

  • 已创建账号类型为超级权限账号的主机账号。创建方法,请参见创建主机账号


重要由于超级权限账号(System Admin)或主机账号所拥有的操作权限已超出了 RDS 控制的范围,因此对于创建了该类型账号的 RDS 实例,我们不再保障SLA


步骤一:通过 WebShell 登录 RDS SQL Server 主机


1.访问RDS实例列表,在上方选择地域,然后单击目标实例 ID。

2.在左侧导航栏单击账号管理

3.选择主机账号页签,单击目标账号操作列下的远程连接(主)

4.在弹出的远程连接对话框中,输入主机账号密码。


image


5.单击确定


单击确定后,系统会生成一个 WebShell 登录地址并自动登录到 SQL Server 实例主机。系统会以弹窗形式打开一个新 WebShell 页面,页面开启时可能会被浏览器拦截,如果出现此情况,请设置浏览器窗口的拦截方式为始终允许,以确保页面正常显示。页面显示如下:


image


步骤二:配置并使用 SSRS 服务


前提条件

在 SQL Server 主机中配置 SSRS 服务前,请确保 SQL Server Reporting Services(MSSQLSERVER)服务状态为开启且运行中。查看或修改 SSRS 服务状态的方法,请参见查看或修改SSRS服务状态


image


注意事项

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.单击​​Windows>Reporting Services Configuration Manager


image


3.在弹出的对话框中,确认报表服务器名称并单击 Connect


image


说明如果您的 RDS SQL Server 实例系列为高可用系列或集群系列,在连接报表时可能会因为数据库镜像或可用性组的原因而失败。如遇到该问题,请参见本文注意事项解决。


4.在左侧导航栏根据您的业务情况设置 Service Accout(服务账号)、Web Service URL(Web 服务 URL)。


image


说明配置方法,请参见官方文档


5.在左侧导航栏选择 Database,然后单击右侧的 Change Database,在主机中创建新的报表服务器数据库。

a. 选择 Create a new report server database,单击 Next

b. 确认服务器名称,配置以下参数,单击 Next


image


社区表格.png


c. 填写报表服务器数据库名称并选择脚本使用的语言,单击 Next


image


d. 设置账户连接报表服务器的凭据,单击 next

e. 确认摘要,单击 Next,等待报表服务器数据库创建完成,单击 Finish


image


6.使用超级权限账号登录 SQL Server 实例,并执行以下命令。


USE [master]GO-- 更改数据库的恢复模式为FULL,使用NO_WAIT参数使更改立即生效ALTER DATABASE [ReportServer] SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE [ReportServerTempDB] SET RECOVERY FULL WITH NO_WAITGO-- 用于启用服务器上所有数据库上的一个特定触发器ENABLE TRIGGER [_$$_tr_$$_rds_alter_database] ON ALL SERVER;
复制代码


7.后续创建数据源等操作取决于您的业务需求,具体操作请参见步骤6~步骤8官方文档


查看或修改 SSRS 服务状态

1.登录 SQL Server 主机,在搜索栏中输入services.msc打开服务窗口。


image


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


image


说明

SSRS 服务启动类型说明如下:

  • Manual:服务需要手动启动,不会在系统启动时自动启动。


  • Automatic:服务会在系统启动时自动启动。


  • Automatic (Delayed Start):服务会在系统启动后一段时间内自动启动。


  • Disabled:服务已被禁用,无法启动。


3.(可选)修改 SSRS 服务运行状态,并启动服务。

a.双击服务,在弹出的对话框中,修改 Startup type 属性。


image


b.右键服务,在弹出的对话框中,单击 Start


image


c.查看修改后的 SSRS 服务运行状态。


image


常见问题

Q:是否可以使用 API 接口获取 RDS 实例主机名和主机 WebShell 登录地址?

A:您可以先使用DescribeDBInstanceIpHostname接口获取 IpHostnameInfos(RDS 实例主机名),再使用DescribeHostWebShell接口获取 LoginUrl(主机 WebShell 登录地址)。

说明

  • 获取到的登录链接仅在两分钟内有效,因此请务必在获取后立即使用,否则将无法成功登录主机。

  • 如果链接失效,请重新调用 API 获取最新的登录链接。

用户头像

微信公众号「阿里云瑶池数据库」 2023-06-19 加入

瑶池,喻指汇聚宝藏之地。阿里云瑶池数据库,汇集数据无价之宝,让数据业务持续在线,数据价值不断放大。

评论

发布
暂无评论
通过WebShell登录SQL Server主机并使用SSRS报表服务_数据库_阿里云瑶池数据库_InfoQ写作社区