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

本文将为您介绍如何使用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账号

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

使用影响

本教程所使用到的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获取最新的登录链接。