

# Amazon RDS for SQL Server 中的 SQL Server Reporting Services 支持
<a name="Appendix.SQLServer.Options.SSRS"></a>

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。您可以将 SSR 用于现有或新的数据库实例。

RDS 在以下版本上对于 SQL Server 标准版和企业版支持 SSRS：
+ SQL Server 2022，所有版本
+ SQL Server 2019，版本 15.00.4043.16.v1 和更高版本
+ SQL Server 2017，版本 14.00.3223.3.v1 和更高版本
+ SQL Server 2016，版本 13.00.5820.21.v1 和更高版本

**Contents**
+ [限制和建议](#SSRS.Limitations)
+ [开启 SSRS](SSRS.Enabling.md)
  + [为 SSRS 创建选项组](SSRS.Enabling.md#SSRS.OptionGroup)
  + [将 SSRS 选项添加到选项组](SSRS.Enabling.md#SSRS.Add)
  + [将选项组与数据库实例关联](SSRS.Enabling.md#SSRS.Apply)
  + [允许对 VPC 安全组的入站访问](SSRS.Enabling.md#SSRS.Inbound)
+ [报告服务器数据库](#SSRS.DBs)
+ [SSRS 日志文件](#SSRS.Logs)
+ [访问 SSRS Web 门户](SSRS.Access.md)
  + [在 RDS 上使用 SSL](SSRS.Access.md#SSRS.Access.SSL)
  + [将访问权限授予域用户](SSRS.Access.md#SSRS.Access.Grant)
  + [访问 Web 门户](SSRS.Access.md#SSRS.Access)
+ [部署报告和配置报告数据来源](SSRS.DeployConfig.md)
  + [将报告部署到 SSRS](SSRS.DeployConfig.md#SSRS.Deploy)
  + [配置报告数据来源。](SSRS.DeployConfig.md#SSRS.ConfigureDataSource)
+ [使用 SSRS 电子邮件发送报告](SSRS.Email.md)
+ [撤销系统级权限](SSRS.Access.Revoke.md)
+ [监控任务的状态](SSRS.Monitor.md)
+ [禁用和删除 SSRS 数据库](SSRS.DisableDelete.md)
  + [关闭 SSRS](SSRS.DisableDelete.md#SSRS.Disable)
  + [删除 SSRS 数据库](SSRS.DisableDelete.md#SSRS.Drop)

## 限制和建议
<a name="SSRS.Limitations"></a>

以下限制和建议适用于在 RDS for SQL Server 上运行 SSRS：
+ 您不能在具有只读副本的数据库实例上使用 SSRS。
+ 实例必须使用自行管理的 Active Directory 或 AWS Directory Service for Microsoft Active Directory，才能进行 SSRS Web 门户和 Web 服务器身份验证。有关更多信息，请参阅 [将 Active Directory 用于 RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md)。
+ 您无法备份使用 SSRS 选项创建的报表服务器数据库。
+ 不支持从 SSRS 的其他实例导入和恢复报告服务器数据库。有关更多信息，请参阅 [报告服务器数据库](#SSRS.DBs)。
+ 您无法将 SSRS 配置为侦听默认 SSL 端口 (443)。允许的值为 1150–49511，但不包括 1234、1434、3260、3343、3389 和 47001。
+ 不支持通过 Microsoft Windows 文件共享进行订阅。
+ 不支持使用报告服务配置管理器。
+ 不支持创建和修改角色。
+ 不支持修改报告服务器属性。
+ 未授予系统管理员和系统用户角色。
+ 无法通过 Web 门户编辑系统级角色分配。

# 开启 SSRS
<a name="SSRS.Enabling"></a>

使用以下过程为数据库实例开启 SSRS：

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

1. 将 `SSRS` 选项添加到该选项组。

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

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

## 为 SSRS 创建选项组
<a name="SSRS.OptionGroup"></a>

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

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

### 控制台
<a name="SSRS.OptionGroup.Console"></a>

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

**创建选项组**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**选项组**。

1. 选择**创建组**。

1. 在**创建选项组**窗格中，执行以下操作：

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

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

   1. 对于**引擎**，选择 **sqlserver-se**。

   1. 对于**主引擎版本**，选择 **14.00**。

1. 选择**创建**。

### CLI
<a name="SSRS.OptionGroup.CLI"></a>

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

**创建选项组**
+ 运行以下命令之一。

**Example**  
对于 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 选项添加到选项组
<a name="SSRS.Add"></a>

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

### 控制台
<a name="SSRS.Add.CON"></a>

**添加 SSRS 选项**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**选项组**。

1. 选择刚创建的选项组，然后选择 **Add Option**（添加选项）。

1. 在**选项详细信息**下，为**选项名称**选择 **SSRS**。

1. 在**选项设置**下，执行以下操作：

   1. 输入 SSRS 服务要侦听的端口。默认值为 8443。有关允许值的列表，请参阅 [限制和建议](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations)。

   1. 输入**最大内存**的值。

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

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

1. 要使用 SSRS 电子邮件发送报告，选择 **Email delivery in reporting services**（报告服务中的电子邮件递送）下的 **Configure email delivery options**（配置电子邮件递送选项）复选框，然后执行以下操作：

   1. 对于 **Sender email address**（发件人电子邮件地址），在 SSRS 电子邮件发送的邮件的 **From**（发件人）字段中输入要使用的电子邮件地址。

      指定有权从 SMTP 服务器发送邮件的用户账户。

   1. 对于 **SMTP server**（SMTP 服务器），请指定要使用的 SMTP 服务器或网关。

      它可以是 IP 地址、公司内部网中计算机的 NetBIOS 名称或完全限定域名。

   1. 对于 **SMTP port**（SMTP 端口），输入要用于连接到邮件服务器的端口。默认值为 25。

   1. 要使用身份验证：

      1. 选择 **Use authentication**（使用身份验证）复选框。

      1. 对于 **Secret Amazon Resource Name (ARN)** [密钥 Amazon 资源名称（ARN）]，输入用户凭证的 AWS Secrets Manager ARN。

         使用以下格式：

         **arn:aws:secretsmanager:*Region*:*AccountId*:secret:*SecretName*-*6RandomCharacters***

         例如：

         **arn:aws:secretsmanager:*us-west-2*:*123456789012*:secret:*MySecret-a1b2c3***

         有关创建密钥的更多信息，请参阅[使用 SSRS 电子邮件发送报告](SSRS.Email.md)。

   1. 选中 **Use Secure Sockets Layer (SSL)** [使用安全套接字层 (SSL)] 复选框可使用 SSL 加密电子邮件。

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

1. 选择**添加选项**。

### CLI
<a name="SSRS.Add.CLI"></a>

**添加 SSRS 选项**

1. 创建 JSON 文件，例如：`ssrs-option.json`。

   1. 设置以下必需参数：
      + `OptionGroupName` – 您之前创建或选择的选项组的名称（以下示例中的 `ssrs-se-2017`）。
      + `Port` – SSRS 服务要侦听的端口。默认值为 8443。有关允许值的列表，请参阅 [限制和建议](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations)。
      + `VpcSecurityGroupMemberships` – RDS 数据库实例的 VPC 安全组成员。
      + `MAX_MEMORY` – 阈值上限，超过该阈值后，不会允许报告服务器应用程序的新内存分配请求。该数字是占数据库实例总内存的百分比。允许的值为 10–80。

   1. （可选）设置以下参数以使用 SSRS 电子邮件：
      + `SMTP_ENABLE_EMAIL` – 设置为 `true` 以使用 SSRS 电子邮件。默认值为 `false`。
      + `SMTP_SENDER_EMAIL_ADDRESS` – SSRS 电子邮件发送的邮件的 **From**（发件人）字段中要使用的电子邮件地址。指定有权从 SMTP 服务器发送邮件的用户账户。
      + `SMTP_SERVER` – 要使用的 SMTP 服务器或网关。它可以是 IP 地址、公司内部网中计算机的 NetBIOS 名称或完全限定域名。
      + `SMTP_PORT` – 用于连接到邮件服务器的端口。默认值为 25。
      + `SMTP_USE_SSL` – 设置为 `true` 以使用 SSL 加密电子邮件。默认值为 `true`。
      + `SMTP_EMAIL_CREDENTIALS_SECRET_ARN` – 用于保存用户凭证的 Secrets Manager ARN。采用以下格式：

        **arn:aws:secretsmanager:*Region*:*AccountId*:secret:*SecretName*-*6RandomCharacters***

        有关创建密钥的更多信息，请参阅[使用 SSRS 电子邮件发送报告](SSRS.Email.md)。
      + `SMTP_USE_ANONYMOUS_AUTHENTICATION` – 设置为 `true`，如果不想使用身份验证，则不包括 `SMTP_EMAIL_CREDENTIALS_SECRET_ARN`。

        当 `SMTP_ENABLE_EMAIL` 为 `true` 时，原定设置值为 `false`。

   以下示例包含使用密钥 ARN 的 SSRS 电子邮件参数。

   ```
   {
   "OptionGroupName": "ssrs-se-2017",
   "OptionsToInclude": [
   	{
   	"OptionName": "SSRS",
   	"Port": 8443,
   	"VpcSecurityGroupMemberships": ["sg-0abcdef123"],
   	"OptionSettings": [
               {"Name": "MAX_MEMORY","Value": "60"},
               {"Name": "SMTP_ENABLE_EMAIL","Value": "true"}
               {"Name": "SMTP_SENDER_EMAIL_ADDRESS","Value": "nobody@example.com"},
               {"Name": "SMTP_SERVER","Value": "email-smtp.us-west-2.amazonaws.com"},
               {"Name": "SMTP_PORT","Value": "25"},
               {"Name": "SMTP_USE_SSL","Value": "true"},
               {"Name": "SMTP_EMAIL_CREDENTIALS_SECRET_ARN","Value": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-a1b2c3"}
               ]
   	}],
   "ApplyImmediately": true
   }
   ```

1. 将 `SSRS` 选项添加到该选项组。  
**Example**  

   对于 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
   ```

## 将选项组与数据库实例关联
<a name="SSRS.Apply"></a>

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

如果您使用现有数据库实例，则该实例必须已经关联了 Active Directory 域和 AWS Identity and Access Management (IAM) 角色。如果您创建新实例，请指定现有的 Active Directory 域和 IAM 角色。有关更多信息，请参阅 [将 Active Directory 用于 RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md)。

### 控制台
<a name="SSRS.Apply.Console"></a>

您可将您的选项组与新的或现有的数据库实例关联：
+ 对于新数据库实例，请在启动实例时关联选项组。有关更多信息，请参阅“[创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)”。
+ 对于现有数据库实例，请修改实例并关联新选项组。有关更多信息，请参阅 [修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)。

### CLI
<a name="SSRS.Apply.CLI"></a>

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

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

  对于 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 \
      --manage-master-user-password  \
      --master-username admin \
      --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 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name ssrs-se-2017
  ```

**修改数据库实例以使用选项组**
+ 运行以下命令之一。  
**Example**  

  对于 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 安全组的入站访问
<a name="SSRS.Inbound"></a>

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

## 报告服务器数据库
<a name="SSRS.DBs"></a>

当数据库实例与 SSRS 选项关联时，将在数据库实例上创建两个新的数据库：
+ `rdsadmin_ReportServer`
+ `rdsadmin_ReportServerTempDB`

这些数据库充当 ReportServer 和 ReportServerTempDB 数据库。SSRS 将其数据存储在 ReportServer 数据库中，并将其数据缓存在 ReportServerTempDB 数据库中。有关更多信息，请参阅 Microsoft 文档中的[报表服务器数据库](https://learn.microsoft.com/en-us/sql/reporting-services/report-server/report-server-database-ssrs-native-mode?view=sql-server-ver15)。

RDS 拥有和管理这些数据库，因此不允许对它们进行 ALTER 和 DROP 等数据库操作。不允许访问 `rdsadmin_ReportServerTempDB` 数据库。但是，您可以对 `rdsadmin_ReportServer` 数据库执行读取操作。

## SSRS 日志文件
<a name="SSRS.Logs"></a>

您可以列出、查看并下载 SSRS 日志文件。SSRS 日志文件遵循 ReportServerService\$1*timestamp*.log 的命名约定。这些报表服务器日志位于 `D:\rdsdbdata\Log\SSRS` 目录中。（`D:\rdsdbdata\Log` 目录也是错误日志和 SQL Server 代理日志的父目录。） 有关更多信息，请参阅 [查看和列出数据库日志文件](USER_LogAccess.Procedural.Viewing.md)。

对于现有 SSRS 实例，可能需要重启 SSRS 服务才能访问报表服务器日志。可以通过更新 `SSRS` 选项来重启服务。

有关更多信息，请参阅 [使用 Amazon RDS for Microsoft SQL Server 日志](Appendix.SQLServer.CommonDBATasks.Logs.md)。

# 访问 SSRS Web 门户
<a name="SSRS.Access"></a>

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

1. 开启安全套接字层（SSL）。

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

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

## 在 RDS 上使用 SSL
<a name="SSRS.Access.SSL"></a>

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

有关 SSL 证书的更多信息，请参阅[使用 SSL/TLS 加密与数据库实例或集群的连接](UsingWithRDS.SSL.md)。有关将 SSL 与 SQL Server 一起使用的更多信息，请参阅[将 SSL 与 Microsoft SQL Server 数据库实例结合使用](SQLServer.Concepts.General.SSL.Using.md)。

## 将访问权限授予域用户
<a name="SSRS.Access.Grant"></a>

在新的 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 门户
<a name="SSRS.Access"></a>

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

```
https://rds_endpoint:port/Reports
```

在此格式中，以下项适用：
+ *`rds_endpoint`* – 与 SSRS 一起使用的 RDS 数据库实例的终端节点。

  您可以在数据库实例的**连接和安全性**选项卡上找到终端节点。有关更多信息，请参阅“[连接到 Microsoft SQL Server 数据库实例](USER_ConnectToMicrosoftSQLServerInstance.md)”。
+ `port` – 您在 `SSRS` 选项中设置的 SSRS 侦听器端口。

**访问 Web 门户**

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

   ```
   https://myssrsinstance.cg034itsfake.us-east-1.rds.amazonaws.com:8443/Reports
   ```

1. 使用您通过 `SSRS_GRANT_PORTAL_PERMISSION` 任务授予访问权限的域用户的凭证登录。

# 部署报告和配置报告数据来源
<a name="SSRS.DeployConfig"></a>

使用以下过程将报告部署到 SSRS 并配置报告数据来源：

**Topics**
+ [将报告部署到 SSRS](#SSRS.Deploy)
+ [配置报告数据来源。](#SSRS.ConfigureDataSource)

## 将报告部署到 SSRS
<a name="SSRS.Deploy"></a>

访问 Web 门户后，您可以将报告部署到其中。您可以使用 Web 门户中的上传工具来上传报告，或直接从 [SQL Server Data Tools (SSDT)](https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt) 部署。从 SSDT 部署时，请确保以下各项：
+ 启动 SSDT 的用户可以访问 SSRS Web 门户。
+ SSRS 项目属性中的 `TargetServerURL` 值设置为带 `ReportServer` 后缀的 RDS 数据库实例的 HTTPS 终端节点，例如：

  ```
  https://myssrsinstance.cg034itsfake.us-east-1.rds.amazonaws.com:8443/ReportServer
  ```

## 配置报告数据来源。
<a name="SSRS.ConfigureDataSource"></a>

将报告部署到 SSRS 后，应配置报告数据来源。配置报告数据来源时，请确保满足以下条件：
+ 对于已加入 AWS Directory Service for Microsoft Active Directory 的 RDS for SQL Server 数据库实例，使用完全限定域名（FQDN）作为连接字符串的数据来源名称。以 `myssrsinstance.corp-ad.example.com` 为例，其中 `myssrsinstance` 是数据库实例名称，`corp-ad.example.com` 是完全限定域名。
+ 对于已加入自行管理的 Active Directory 的 RDS for SQL Server 数据库实例，请使用 `.` 或 `LocalHost` 作为连接字符串的数据来源名称。

# 使用 SSRS 电子邮件发送报告
<a name="SSRS.Email"></a>

SSRS 包括 SSRS 电子邮件扩展，您可以使用它向用户发送报告。

要配置 SSRS 电子邮件，请使用 `SSRS` 选项设置。有关更多信息，请参阅 [将 SSRS 选项添加到选项组](SSRS.Enabling.md#SSRS.Add)。

配置 SSRS 电子邮件后，您可以在报告服务器上订阅报表。有关更多信息，请参阅 Microsoft 文档中的[报告服务中的电子邮件递送](https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/e-mail-delivery-in-reporting-services)。

与 AWS Secrets Manager 集成是 SSRS 电子邮件在 RDS 上运行所必需的。要与 Secrets Manager 集成，您需要创建密钥。

**注意**  
如果您稍后更改密钥，则还必须更新选项组中的 `SSRS` 选项。

**为 SSRS 电子邮件创建密钥**

1. 按照《AWS Secrets Manager 用户指南》**中[创建密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)的步骤操作。

   1. 对于**选择密钥类型**，选择**其他密钥类型**。

   1. 对于 **Key/value pairs**（键值对），输入以下内容：
      + **SMTP\$1USERNAME** – 输入有权从 SMTP 服务器发送邮件的用户。
      + **SMTP\$1PASSWORD** – 输入 SMTP 用户的密码。

   1. 对于 **Encryption key**（加密密钥），不要使用原定设置 AWS KMS key。使用您自己的现有密钥，或创建新密钥。

      KMS 密钥策略必须允许 `kms:Decrypt` 操作，例如：

      ```
      {
          "Sid": "Allow use of the key",
          "Effect": "Allow",
          "Principal": {
              "Service": [
                  "rds.amazonaws.com"
              ]
          },
          "Action": [
              "kms:Decrypt"
          ],
          "Resource": "*"
      }
      ```

1. 按照《AWS Secrets Manager 用户指南》**中的[将权限策略附加到密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)中的步骤进行操作。权限策略将 `secretsmanager:GetSecretValue` 操作提供给 `rds.amazonaws.com` 服务主体。

   我们建议您在策略中使用 `aws:sourceAccount` 和 `aws:sourceArn` 条件，以避免出现*混淆代理人*问题。将您的 AWS 账户用于 `aws:sourceAccount`，并将选项组 ARN 用于 `aws:sourceArn`。有关更多信息，请参阅 [防范跨服务混淆代理问题](cross-service-confused-deputy-prevention.md)。

   下面显示了一个示例权限策略。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement" : [ {
       "Effect" : "Allow",
       "Principal" : {
         "Service" : "rds.amazonaws.com"
       },
       "Action" : "secretsmanager:GetSecretValue",
       "Resource" : "*",
       "Condition" : {
         "StringEquals" : {
           "aws:sourceAccount" : "123456789012"
         },
         "ArnLike" : {
           "aws:sourceArn" : "arn:aws:rds:us-west-2:123456789012:og:ssrs-se-2017"
         }
       }
     } ]
   }
   ```

------

   有关更多示例，请参阅《AWS Secrets Manager 用户指南》**中的 [AWS Secrets Manager 的权限策略示例](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html)。

# 撤销系统级权限
<a name="SSRS.Access.Revoke"></a>

`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` 项目级角色，则还会从其中删除该用户。

# 监控任务的状态
<a name="SSRS.Monitor"></a>

要跟踪您的授予或撤消任务的状态，请调用 `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，任务可以具有以下任务类型： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/SSRS.Monitor.html)  | 
| `database_name` | 不适用于 SSRS 任务。 | 
| `% complete` | 用百分比表示的任务进度。 | 
| `duration (mins)` | 在任务上花费的时间 (以分钟为单位)。 | 
| `lifecycle` |  任务的状态。有以下可能状态： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/SSRS.Monitor.html)  | 
| `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 数据库
<a name="SSRS.DisableDelete"></a>

使用以下过程禁用 SSRS 并删除 SSRS 数据库：

**Topics**
+ [关闭 SSRS](#SSRS.Disable)
+ [删除 SSRS 数据库](#SSRS.Drop)

## 关闭 SSRS
<a name="SSRS.Disable"></a>

要关闭 SSRS，请从其选项组中删除 `SSRS` 选项。删除该选项不会删除 SSRS 数据库。有关更多信息，请参阅 [删除 SSRS 数据库](#SSRS.Drop)。

您可以通过重新添加 `SSRS` 选项以再次开启 SSRS。如果您还删除了 SSRS 数据库，则在同一数据库实例上重新添加此选项会创建新的报告服务器数据库。

### 控制台
<a name="SSRS.Disable.Console"></a>

**从其选项组中删除 SSRS 选项**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**选项组**。

1. 选择具有 `SSRS` 选项的选项组（在前面的示例中为 `ssrs-se-2017`）。

1. 选择 **Delete option (删除选项)**。

1. 在**删除选项**下，为**待删除的选项**选择 **SSRS**。

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

1. 选择**删除**。

### CLI
<a name="SSRS.Disable.CLI"></a>

**从其选项组中删除 SSRS 选项**
+ 运行以下命令之一。  
**Example**  

  对于 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 数据库
<a name="SSRS.Drop"></a>

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

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

**删除 SSRS 数据库**
+ 使用以下存储过程。

  ```
  exec msdb.dbo.rds_drop_ssrs_databases
  ```