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 SQL 登录:一个设置登录和一个服务登录。如需创建登录,请参阅
gcloud sql users create。如果要使用 Windows 身份验证,则必须使用 Managed Active Directory 加入 SQL Server 实例和运行 SSRS 的主机。如需了解详情,请参阅将 Managed Microsoft AD 与 Cloud SQL 结合使用。
过程
如需在 Cloud SQL 中设置 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 设置,请按以下步骤操作:
- 在安装了 SSRS 的主机上打开 Reporting Services 配置管理器。
- 连接到本地报告服务器实例。
- 点击更改数据库。
- 输入在 Cloud DNS 中创建的 SQL Server 主机名以及用于 SSRS 租约的设置登录的 SQL Server 登录凭据。
- 输入用于 SSRS 租约的新报告服务器数据库或现有报告数据库的名称。
- 输入用于 SSRS 租约的服务登录的 SQL Server 登录凭证。
- 点击下一步,完成最后一步。
- 如果尚未设置,请配置 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/releaseSsrsLeaseREST 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 实例都要求您使用现有报告数据库配置新的报告数据库。
- 每次想要在报告服务器配置管理器中更改报告服务器数据库的登录凭证时,都必须创建新租约。
常见问题解答
以下部分有助于解答与 SSRS 相关的常见问题。
设置和租约机制
以下部分有助于解答设置和 SSRS 租约问题。
如何设置搭配 Cloud SQL 使用的 SSRS?
您需要在单独的 Windows 主机(例如 Compute Engine 虚拟机)上安装 SSRS。然后,配置 SSRS 以将您的 Cloud SQL 实例用于 ReportServer 和 ReportServerTempDB 数据库。如果您使用 Cloud SQL 管理设置,那么“SSRS 租约”是此过程的重要组成部分。
什么是 SSRS 租约?为什么需要它?
SSRS 设置通常需要 sysadmin 权限,而 Cloud SQL 中的用户未被授予此权限。租约机制会临时向指定的 SQL Server 登录名(例如 --setup-login)授予必要的提升权限,以完成数据库设置。
您需要在配置之前使用 gcloud sql instances acquire-ssrs-lease 获取租约,并在配置之后使用 gcloud sql instances release-ssrs-lease 释放租约。租约具有可配置的时长。
身份验证
以下部分有助于解答身份验证问题。
我可以使用 Windows 身份验证 (Microsoft Active Directory) 进行设置吗?
不可以,在获取租约和配置报告服务器数据库时,您必须为 --setup-login 和 --service-login 参数使用 SQL Server 登录名。此初始设置过程不支持 Windows 登录名。
虽然设置需要 SQL 登录名,但如果您的 Cloud SQL 实例和 SSRS 主机都加入了以下任一网域类型,您或许可以使用 Windows 身份验证来访问报告:
限制
以下部分有助于解答与限制或局限性相关的问题。
搭配 Cloud SQL 使用 SSRS 有哪些限制?
- 数据库设置阶段不支持 Microsoft Active Directory 登录名。
- 报告数据库名称只能包含字母数字字符和连字符。
- 如果您日后想更改服务账号凭证,则必须获取新的租约。
- 横向扩容部署需要为每个新的 SSRS 主机执行租约流程。
- 导入现有报告服务器数据库需要手动重新映射服务登录用户。
价格注意事项
以下部分有助于解答价格考量问题。
许可涉及哪些费用?
- 您的 Cloud SQL 实例需要 SQL Server 许可。
- 由于 SSRS 运行在单独的 Windows 机器上,请确保该机器上的 Windows 操作系统和任何 SQL Server 组件均已获得适当许可。根据 Microsoft 的政策,在单独的服务器上运行 SSRS 可能需要额外的 SQL Server 许可。
自动化
以下部分有助于解答与自动化相关的问题。
能否自动执行 SSRS 主机安装和配置流程?
您可以使用 gcloud CLI 或 REST API 在 Cloud SQL 中运行操作来获取和释放 SSRS 租约。
Windows 环境内部的 SSRS 安装和配置通常涉及通过“Reporting Services 配置管理器”界面执行的手动步骤,这使得实现完全的端到端自动化更具挑战性。
如需了解详情,请参阅安装和配置 SSRS。
维护
以下部分有助于解答与维护相关的问题。
使用 SSRS 可能会涉及哪些管理和维护活动?
在开始之前,请考虑与单独的 SSRS 服务器相关的持续管理开销。您负责管理、修补和保护运行 SSRS 服务的 Windows 虚拟机。Cloud SQL 仅管理数据库实例。