SQL Server Reporting Services (SSRS)

Cloud SQL 支持 SQL Server Reporting Services (SSRS),该服务可帮助您创建、部署和管理分页报告。

本页面介绍在 Cloud SQL 中使用 SSRS 的前提条件、设置过程和限制。

准备工作

在 Cloud SQL 上使用 SSRS 之前,必须满足以下前提条件:

  • 用于托管报告服务器数据库的 Cloud SQL 实例
  • 安装和运行 SSRS 的主机。它可以是 Compute Engine 虚拟机,也可以是不使用 Compute Engine 的主机。如需了解安装说明,请参阅安装 SQL Server Reporting Services
  • 用于为您的 Cloud SQL 实例分配主机名的 Cloud DNS 记录。您可以使用以下选项之一创建主机名:

    • Cloud DNS:使用 Cloud DNS 创建指向您的实例的主机名。
    • 自定义 DNS 区域:如果您管理自己的 DNS 区域,则可以创建 A 记录,以将首选主机名映射到实例的 IP 地址。
    • 本地主机名映射:修改系统的 hosts 文件,以便为实例创建自定义别名。
  • 两个现有的 Cloud SQL 登录:一个设置登录和一个服务登录。如需创建登录,请参阅 gcloud sql users create

    如果要使用 Windows 身份验证,则必须使用 Managed Active Directory 加入 SQL Server 实例和运行 SSRS 的主机。如需了解详情,请参阅将 Managed Microsoft AD 与 Cloud SQL 结合使用

过程

如需在 Cloud SQL 中设置 SSRS,请执行以下步骤:

  1. 获取 SSRS 租约
  2. 设置 SSRS
  3. 释放 SSRS 租约

获取 SSRS 租约

SSRS 需要在设置过程中拥有提升权限。如需获取实例的 SSRS 租约,请使用以下命令:

gcloud

使用以下命令获取租约:

gcloud sql instances acquire-ssrs-lease INSTANCE_NAME \
--project=PROJECT_NAME \
--setup-login=SETUP_LOGIN \
--service-login=SERVICE_LOGIN \
--report-database=REPORT_DATABASE \
--duration=DURATION \

下表说明了此操作的 gcloud 参数:

参数 说明 允许使用的值 默认值
--setup-login 必需。在 SSRS 设置期间用于连接到实例的登录。这是在设置报告服务器数据库时,报告服务器配置管理器中请求的首次登录。 这必须是现有的 SQL Server 登录,例如 sqlserver
--service-login 必需。报告服务器在设置 SSRS 时用来连接到报告服务器数据库的 SQL Server 登录。这是在设置报告服务器数据库时,报告服务器配置管理器中请求的第二次登录。 这必须是现有的 SQL Server 登录,并且必须不同于设置登录。 无。
--report-database 必需。实例上现有的或新的报告数据库名称。 报告数据库名称中不允许使用某些特殊字符,例如空格、括号、非英文字符。
--duration 可选。SSRS 租约处于有效状态的小时数,在此期间您可以执行 SSRS 设置。 1 至 12 小时。例如 4h 5 小时

REST v1

使用 REST API,您可以在实例上获取 SSRS 租约。要获取 SSRS 租约,请指定以下内容:
  • 两个不同的 SQL Server 登录:设置登录和服务登录
  • 报告数据库名称
  • 租用处于活跃状态的持续时间

只有 DURATION 字段是可选项。如需了解详情,请参阅 AcquireSsrsLeaseContext

  • PROJECT_ID:项目的 ID。
  • INSTANCE_NAME:实例的名称。
  • SETUP_LOGIN:用于在 SSRS 设置期间连接到 SQL Server 实例的 SQL Server 登录。这是在设置报告服务器数据库时,报告服务器配置管理器中请求的首次登录。
  • SERVICE_LOGIN:报告服务器在 SSRS 设置期间用于连接到报告服务器数据库的 SQL Server 登录。这是在设置报告服务器数据库时,报告服务器配置管理器中请求的第二次登录。
  • REPORT_DATABASE: 实例上现有的或新的报告数据库名称。 Microsoft 不允许在报告数据库名称中使用某些特殊字符,例如空格、括号、非英文字符。
  • DURATION:可选。SSRS 租约处于有效状态的小时数,在此期间您可以执行 SSRS 设置。 介于 1 到 12 小时之间,例如 4h

HTTP 方法和网址:

POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/acquireSsrsLease

请求 JSON 正文:

{
  "acquireSsrsLeaseContext": {
    "setupLogin": SETUP_LOGIN,
    "serviceLogin": SERVICE_LOGIN,
    "reportDatabase": REPORT_DATABASE,
    "duration": DURATION,
  }
}

REST v1beta4

使用 REST API,您可以在实例上获取 SSRS 租约。要获取 SSRS 租约,请指定以下内容:
  • 两个不同的 SQL Server 登录:设置登录和服务登录
  • 报告数据库名称
  • 租用处于活跃状态的持续时间

只有 DURATION 字段是可选项。如需了解详情,请参阅 AcquireSsrsLeaseContext

  • PROJECT_ID:项目的 ID。
  • INSTANCE_NAME:实例的名称。
  • SETUP_LOGIN:用于在 SSRS 设置期间连接到 SQL Server 实例的 SQL Server 登录。这是在设置报告服务器数据库时,报告服务器配置管理器中请求的首次登录。
  • SERVICE_LOGIN:报告服务器在 SSRS 设置期间用于连接到报告服务器数据库的 SQL Server 登录。这是在设置报告服务器数据库时,报告服务器配置管理器中请求的第二次登录。
  • REPORT_DATABASE: 实例上现有的或新的报告数据库名称。 Microsoft 不允许在报告数据库名称中使用某些特殊字符,例如空格、括号、非英文字符。
  • DURATION:可选。SSRS 租约处于有效状态的小时数,在此期间您可以执行 SSRS 设置。 介于 1 到 12 小时之间,例如 4h

HTTP 方法和网址:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/acquireSsrsLease

请求 JSON 正文:

{
  "acquireSsrsLeaseContext": {
    "setupLogin": SETUP_LOGIN,
    "serviceLogin": SERVICE_LOGIN,
    "reportDatabase": REPORT_DATABASE,
    "duration": DURATION,
  }
}

设置 SSRS

要执行 SSRS 设置,请按以下步骤操作:

  1. 在安装了 SSRS 的主机上打开 Reporting Services 配置管理器。
  2. 连接到本地报告服务器实例。
  3. 点击更改数据库
    1. 输入在 Cloud DNS 中创建的 SQL Server 主机名以及用于 SSRS 租约的设置登录的 SQL Server 登录凭据。
    2. 输入用于 SSRS 租约的新报告服务器数据库或现有报告数据库的名称。
    3. 输入用于 SSRS 租约的服务登录的 SQL Server 登录凭据。
    4. 点击下一步,完成最后一步。
  4. 如果尚未设置,请配置 Web 服务网址Web 门户网址。Web 门户应该会在几秒钟内成功加载。

释放 SSRS 租约

您可以手动释放租约,也可以等待租约自动到期。若要还原设置所需的任何提升权限并允许服务登录连接到报告数据库,则必须释放租约。在租期到期或手动释放之前,服务登录无法访问报告数据库。以下命令可释放 SSRS 租约。

gcloud

使用以下命令释放租约:

gcloud sql instances release-ssrs-lease INSTANCE_NAME \
--project=PROJECT_NAME

REST v1

使用 REST API,您可以释放实例的 SSRS 租约。如以下请求示例所示,您只需提供实例名称和项目 ID 即可。

  • PROJECT_ID:项目的 ID。
  • INSTANCE_NAME:实例的名称。

HTTP 方法和网址:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/releaseSsrsLease

REST v1beta4

使用 REST API,您可以释放实例的 SSRS 租约。如以下请求示例所示,您只需提供实例名称和项目 ID 即可。

  • PROJECT_ID:项目的 ID。
  • INSTANCE_NAME:实例的名称。

HTTP 方法和网址:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/releaseSsrsLease

限制

  • 设置报告数据库不支持使用 Active Directory 登录。
  • 报告数据库名称只能包含字母数字字符和连字符。
  • 您必须获取租约,才能通过报告服务器配置管理器更改用于连接报告数据库的登录。
  • 对于由服务登录处理的数据库,导入 SQL 文件操作和删除已复制的数据库操作在完成 SSRS 设置到释放租约之间可能会失败。
  • 若要在导入的报告数据库上进行服务登录,您必须删除并重新创建数据库用户。这是因为导入的数据库中的现有用户不属于新实例。
  • 添加新的报告服务器以便在 SSRS 中进行横向扩容部署时,您必须为托管报告服务器的每个新 Windows 虚拟机获取并释放 SSRS 租约。每个 Cloud SQL 实例都要求您使用现有报告数据库配置新的报告数据库。
  • 每次想要在报告服务器配置管理器中更改报告服务器数据库的登录凭据时,都必须创建新租约。