SQL Server 中的 SQL Server Reporting Services 支持 - Amazon Relational Database Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

SQL Server 中的 SQL Server Reporting Services 支持

Microsoft SQL Server Reporting Services (SSRS) 是一个基于服务器的应用程序,用于生成和分发报告。它是 SQL Server 服务套件的一部分,其中还包括 SQL Server Analysis Services (SSAS) 和 SQL Server Integration Services (SSIS)。SSRS 是在 SQL Server 之上构建的服务。您可以使用它从各种数据源收集数据,并以易于理解和直接可供分析的方式呈现。

Amazon RDS for SQL Server 支持直接在 RDS 数据库实例上运行 SSRS。您可以在现有或新数据库实例上启用 SSRS。

限制和建议

以下限制和建议适用于在 RDS for SQL Server 上运行 SSRS:

  • SQL Server 标准版和企业版 14.00.3223.3.v1 及更高版本支持 SSRS。

  • 实例必须为 SSRS Web 门户和 Web 服务器身份验证使用 AWS Managed Microsoft AD。

  • 不支持从 SSRS 的其他实例导入和恢复报告服务器数据库。

    确保使用在将 SSRS 选项添加到 RDS 数据库实例时创建的数据库。有关更多信息,请参阅报告服务器数据库

  • 您无法将 SSRS 配置为侦听默认 SSL 端口 (443)。允许的值为 1150–49511,但不包括 1234、1434、3260、3343、3389 和 47001。

  • 不支持通过电子邮件或 Microsoft Windows 文件共享进行订阅。

  • 不支持使用报告服务配置管理器。

  • 不支持创建和修改角色。

  • 不支持修改报告服务器属性。

  • 未授予系统管理员和系统用户角色。

  • 无法通过 Web 门户编辑系统级角色分配。

启用 SSRS

使用以下过程在数据库实例上启用 SSRS:

  1. 创建新的选项组或选择现有的选项组。

  2. SSRS 选项添加到该选项组。

  3. 将选项组与数据库实例相关联。

  4. 允许对 SSRS 侦听器端口的 Virtual Private Cloud (VPC) 安全组进行入站访问。

为 SSRS 创建选项组

要使用 SSRS,请创建对应于计划使用的 SQL Server 引擎和数据库实例版本的选项组。为此,请使用 AWS 管理控制台或 AWS CLI。

注意

如果现有选项组针对的是正确的 SQL Server 引擎和版本,也可以使用现有选项组。

以下过程创建适用于 SQL Server 标准版 2017 的选项组。

创建选项组

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择选项组

  3. 选择创建组

  4. 创建选项组窗格中,执行以下操作:

    1. 对于名称,输入选项组的名称,在 AWS 账户内该名称需具有唯一性,例如 ssrs-se-2017。此名称只能包含字母、数字和连字符。

    2. 对于描述,输入选项组的简要描述,例如 SSRS option group for SQL Server SE 2017。此说明用于显示说明。

    3. 对于引擎,选择 sqlserver-se

    4. 对于主引擎版本,选择 14.00

  5. 选择 Create

以下过程创建适用于 SQL Server 标准版 2017 的选项组。

创建选项组

  • 运行以下命令之一。

对于 Linux、macOS 或 Unix:

aws rds create-option-group \ --option-group-name ssrs-se-2017 \ --engine-name sqlserver-se \ --major-engine-version 14.00 \ --option-group-description "SSRS option group for SQL Server SE 2017"

对于 Windows:

aws rds create-option-group ^ --option-group-name ssrs-se-2017 ^ --engine-name sqlserver-se ^ --major-engine-version 14.00 ^ --option-group-description "SSRS option group for SQL Server SE 2017"

将 SSRS 选项添加到选项组

接下来,使用 AWS 管理控制台或 AWS CLI 将 SSRS 选项添加到您的选项组。

添加 SSRS 选项

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择选项组

  3. 选择刚刚创建的选项组。

  4. 选择添加选项

  5. 选项详细信息下,为选项名称选择 SSRS

  6. 选项设置下,执行以下操作:

    1. 输入 SSRS 服务要侦听的端口。默认值为 8443。有关允许值的列表,请参阅限制和建议

    2. 输入最大内存的值。

      最大内存指定阈值上限,超过该阈值后,不会允许报告服务器应用程序的新内存分配请求。该数字是占数据库实例总内存的百分比。允许的值为 10–80。

  7. 对于 Security groups (安全组),请选择要与选项关联的 VPC 安全组。使用与您数据库实例关联的相同安全组。

  8. 计划 (Scheduling) 下,选择是立即添加选项还是在下一个维护时段添加选项。

  9. 选择添加选项

添加 SSRS 选项

  1. 使用以下参数创建 JSON 文件,例如 ssrs-option.json

    • OptionGroupName – 您之前创建或选择的选项组的名称(以下示例中的 ssrs-se-2017)。

    • Port – SSRS 服务要侦听的端口。默认值为 8443。有关允许值的列表,请参阅限制和建议

    • VpcSecurityGroupMemberships – RDS 数据库实例的 VPC 安全组成员。

    • MAX_MEMORY – 阈值上限,超过该阈值后,不会允许报告服务器应用程序的新内存分配请求。该数字是占数据库实例总内存的百分比。允许的值为 10–80。

    { "OptionGroupName": "ssrs-se-2017", "OptionsToInclude": [ { "OptionName": "SSRS", "Port": 8443, "VpcSecurityGroupMemberships": ["sg-0abcdef123"], "OptionSettings": [{"Name": "MAX_MEMORY","Value": "60"}] }], "ApplyImmediately": true }
  2. SSRS 选项添加到该选项组。

    对于 Linux、macOS 或 Unix:

    aws rds add-option-to-option-group \ --cli-input-json file://ssrs-option.json \ --apply-immediately

    对于 Windows:

    aws rds add-option-to-option-group ^ --cli-input-json file://ssrs-option.json ^ --apply-immediately

将选项组与数据库实例关联

使用 AWS 管理控制台 或 AWS CLI 将您的选项组与数据库实例关联。

如果您使用现有数据库实例,则该实例必须已经关联了 Active Directory 域和 AWS Identity and Access Management (IAM) 角色。如果您创建新实例,请指定现有的 Active Directory 域和 IAM 角色。有关更多信息,请参阅将 Windows 身份验证与适用于数据库实例的 Amazon RDS 结合使用

您可将您的选项组与新的或现有的数据库实例关联:

您可将您的选项组与新的或现有的数据库实例关联。

创建使用选项组的数据库实例

  • 指定创建选项组时使用的相同数据库引擎类型和主要版本。

    对于 Linux、macOS 或 Unix:

    aws rds create-db-instance \ --db-instance-identifier myssrsinstance \ --db-instance-class db.m5.2xlarge \ --engine sqlserver-se \ --engine-version 14.00.3223.3.v1 \ --allocated-storage 100 \ --master-user-password secret123 \ --master-username master \ --storage-type gp2 \ --license-model li \ --domain-iam-role-name my-directory-iam-role \ --domain my-domain-id \ --option-group-name ssrs-se-2017

    对于 Windows:

    aws rds create-db-instance ^ --db-instance-identifier myssrsinstance ^ --db-instance-class db.m5.2xlarge ^ --engine sqlserver-se ^ --engine-version 14.00.3223.3.v1 ^ --allocated-storage 100 ^ --master-user-password secret123 ^ --master-username master ^ --storage-type gp2 ^ --license-model li ^ --domain-iam-role-name my-directory-iam-role ^ --domain my-domain-id ^ --option-group-name ssrs-se-2017

修改数据库实例以使用选项组

  • 运行以下命令之一。

    对于 Linux、macOS 或 Unix:

    aws rds modify-db-instance \ --db-instance-identifier myssrsinstance \ --option-group-name ssrs-se-2017 \ --apply-immediately

    对于 Windows:

    aws rds modify-db-instance ^ --db-instance-identifier myssrsinstance ^ --option-group-name ssrs-se-2017 ^ --apply-immediately

允许对 VPC 安全组的入站访问

要允许对与您数据库实例关联的 VPC 安全组的入站访问,请为指定的 SSRS 侦听器端口创建入站规则。有关设置安全组的更多信息,请参阅通过创建安全组提供对 VPC 中的数据库实例的访问

报告服务器数据库

当您的数据库实例与 SSRS 选项关联时,将在您的数据库实例上创建两个新的数据库:rdsadmin_ReportServer 和 rdsadmin_ReportServerTempDB。这些数据库充当 ReportServer 和 ReportServerTempDB 数据库。SSRS 将其数据存储在 ReportServer 数据库中,并将其数据缓存在 ReportServerTempDB 数据库中。RDS 拥有和管理这些数据库,因此不允许对它们进行 ALTER 和 DROP 等数据库操作。

访问 SSRS Web 门户

使用以下过程访问 SSRS Web 门户:

  1. 启用安全套接字层 (SSL)

  2. 将访问权限授予域用户。

  3. 使用浏览器和域用户凭证访问 Web 门户。

在 RDS 上启用 SSL

SSRS 为其连接使用 HTTPS SSL 协议。若要使用此协议,请将 SSL 证书导入客户端计算机上的 Microsoft Windows 操作系统。

有关 SSL 证书的更多信息,请参阅使用 SSL/TLS 加密与数据库实例的连接。有关将 SSL 与 SQL Server 一起使用的更多信息,请参阅对 Microsoft SQL Server 数据库实例使用 SSL

将访问权限授予域用户

在新的 SSRS 激活中,SSRS 中没有角色分配。为了授予域用户或用户组访问 Web 门户的访问权限,RDS 提供了一个存储过程。

向 Web 门户上的域用户授予访问权限

  • 使用以下存储过程。

    exec msdb.dbo.rds_msbi_task @task_type='SSRS_GRANT_PORTAL_PERMISSION', @ssrs_group_or_username=N'AD_domain\user';

向域用户或用户组授予 RDS_SSRS_ROLE 系统角色。此角色授予了以下系统级任务:

  • 执行报告定义

  • 管理作业。

  • 管理共享计划

  • 查看共享计划

还授予根文件夹上 Content Manager 的项目级角色。

访问 Web 门户

SSRS_GRANT_PORTAL_PERMISSION 任务成功完成后,您具有使用 Web 浏览器访问门户的权限。Web 门户 URL 的格式如下。

https://rds_endpoint:port/Reports

在此格式中,以下项适用:

访问 Web 门户

  1. 在浏览器中输入 Web 门户网址。

    https://myssrsinstance.cg034itsfake.us-east-1.rds.amazonaws.com:8443/Reports
  2. 使用您通过 SSRS_GRANT_PORTAL_PERMISSION 任务授予访问权限的域用户的凭证登录。

撤销系统级权限

RDS_SSRS_ROLE 系统角色没有足够的权限来删除系统级角色分配。要从 RDS_SSRS_ROLE 中删除用户或用户组,请使用在授予角色时使用的相同存储过程,但使用 SSRS_REVOKE_PORTAL_PERMISSION 任务类型。

撤消域用户对 Web 门户的访问权限

  • 使用以下存储过程。

    exec msdb.dbo.rds_msbi_task @task_type='SSRS_REVOKE_PORTAL_PERMISSION', @ssrs_group_or_username=N'AD_domain\user';

执行此操作将从 RDS_SSRS_ROLE 系统角色中删除用户。如果用户有 Content Manager 项目级角色,则还会从其中删除该用户。

监控任务的状态

要跟踪您的授予或撤消任务的状态,请调用 rds_fn_task_status 函数。它获取两个参数。第一个参数应该始终为 NULL,因为它不适用于 SSRS。第二个参数接受任务 ID。

要查看所有任务的列表,请将第一个参数设置为 NULL,将第二个参数设置为 0,如以下示例所示。

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);

要获取特定任务,请将第一个参数设置为 NULL,将第二个参数设置为任务 ID,如以下示例所示。

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);

rds_fn_task_status 函数将返回以下信息。

输出参数

描述

task_id

任务的 ID。

task_type

对于 SSRS,任务可以具有以下任务类型:

  • SSRS_GRANT_PORTAL_PERMISSION

  • SSRS_REVOKE_PORTAL_PERMISSION

database_name

不适用于 SSRS 任务。

% complete

用百分比表示的任务进度。

duration (mins)

在任务上花费的时间 (以分钟为单位)。

lifecycle

任务的状态。有以下可能状态:

  • CREATED – 调用 SSRS 存储过程之一后,将创建一个任务并将状态设置为 CREATED

  • IN_PROGRESS – 任务开始后,状态将设置为 IN_PROGRESS。要将状态从 CREATED 更改为 IN_PROGRESS 可能需要最多 5 分钟的时间。

  • SUCCESS – 任务完成后,状态将设置为 SUCCESS

  • ERROR – 如果任务失败,状态将设置为 ERROR。有关错误的更多信息,请参阅 task_info 列。

  • CANCEL_REQUESTED – 在您调用 rds_cancel_task 存储过程后,任务的状态将设置为 CANCEL_REQUESTED

  • CANCELLED – 在成功取消任务后,任务的状态将设置为 CANCELLED

task_info

有关任务的其他信息。如果在处理过程中发生错误,则此列包含有关错误的信息。

last_updated

上次更新任务状态的日期和时间。

created_at

任务的创建日期和时间。

S3_object_arn

不适用于 SSRS 任务。

overwrite_S3_backup_file

不适用于 SSRS 任务。

KMS_master_key_arn

不适用于 SSRS 任务。

filepath

不适用于 SSRS 任务。

overwrite_file

不适用于 SSRS 任务。

task_metadata

与 SSRS 任务关联的元数据。

禁用 SSRS

要禁用 SSRS,请从其选项组中删除 SSRS 选项。删除该选项不会删除 SSRS 数据库。有关更多信息,请参阅删除 SSRS 数据库

您可以通过将 SSRS 选项添加回来以重新启用 SSRS。如果您还删除了 SSRS 数据库,则在同一数据库实例上重新启用 SSRS 会创建新的报告服务器数据库。

从其选项组中删除 SSRS 选项

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择选项组

  3. 选择具有 SSRS 选项的选项组(在前例中为 ssrs-se-2017)。

  4. 选择 Delete option (删除选项)

  5. 删除选项下,为待删除的选项选择 SSRS

  6. Apply immediately (立即应用) 下,选择 Yes (是) 可立即删除选项,选择 No (否) 可在下次维护时段时删除。

  7. 选择 Delete

从其选项组中删除 SSRS 选项

  • 运行以下命令之一。

    对于 Linux、macOS 或 Unix:

    aws rds remove-option-from-option-group \ --option-group-name ssrs-se-2017 \ --options SSRS \ --apply-immediately

    对于 Windows:

    aws rds remove-option-from-option-group ^ --option-group-name ssrs-se-2017 ^ --options SSRS ^ --apply-immediately

删除 SSRS 数据库

删除 SSRS 选项不会删除报告服务器数据库。要删除数据库,请使用以下存储过程。

要删除报表服务器数据库,请务必先删除 SSRS 选项。

删除 SSRS 数据库

  • 使用以下存储过程。

    exec msdb.dbo.rds_drop_ssrs_databases