使用本地 SMTP 服务器和数据库邮件发送 Amazon RDS for SQL Server 数据库实例通知 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用本地 SMTP 服务器和数据库邮件发送 Amazon RDS for SQL Server 数据库实例通知

创建者:Nishad Mankar (AWS)

环境:PoC 或试点

技术:数据库;管理和治理

工作负载:Microsoft

Amazon Web Services:Amazon RDS

总结

数据库邮件(Microsoft 文档)使用简单邮件传输协议 (SMTP) 服务器从 Microsoft SQL Server 数据库发送电子邮件,例如通知或警报。Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server 文档提供了使用 Amazon Simple Email Service (Amazon SES) 作为数据库邮件的 SMTP 服务器的说明。有关详细信息,请参阅在 Amazon RDS for SQL Server 上使用 Database Mail。作为替代配置,此模式说明了如何使用本地 SMTP 服务器作为邮件服务器,将数据库邮件配置为从 Amazon RDS for SQL Server 数据库(DB)实例发送电子邮件。

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account

  • 运行标准版或企业版 SQL Server 的 Amazon RDS 数据库实例

  • 本地 SMTP 服务器的 IP 地址或主机名

  • 入站安全组规则,允许从 SMTP 服务器的 IP 地址连接到 Amazon RDS for SQL Server 数据库实例

  • 您的本地网络与包含 Amazon RDS 数据库实例的虚拟私有云(VPC)之间的连接,例如 AWS Direct Connect 连接

限制

  • 不支持 SQL Server Express 版。

  • 有关限制的更多信息,请参阅 Amazon RDS 文档中的在 Amazon RDS for SQL Server 上使用数据库邮件中的限制

产品版本

架构

目标技术堆栈

  • Amazon RDS for SQL Server 数据库实例

  • Amazon Route 53 转发规则

  • 数据库邮件

  • 本地 SMTP 服务器

  • Microsoft SQL Server Management Studio (SSMS)

目标架构

下图显示了此模式的目标架构。当发生启动有关数据库实例的通知或警报的事件或操作时,Amazon RDS for SQL Server 使用数据库邮件发送电子邮件通知。数据库邮件通过本地 SMTP 服务器发送电子邮件。

Amazon RDS for SQL Server 使用本地 SMTP 服务器向用户发送电子邮件通知。

工具

Amazon Web Services

其他工具

  • 数据库邮件是一种从 SQL Server 数据库引擎向用户发送电子邮件(例如通知和警报)的工具。

  • Microsoft SQL Server Management Studio (SSMS) 是一款用于管理 SQL Server 的工具,包括访问、配置和管理 SQL Server 组件。在这种模式中,您可使用 SSMS 运行 SQL 命令在 Amazon RDS for SQL Server 数据库实例上设置数据库邮件。 

操作说明

任务描述所需技能

从 RDS 数据库实例中删除多可用区。

如果您使用的是多可用区 RDS 数据库实例,请将多可用区实例转换为单可用区实例。完成配置数据库邮件后,您会将数据库实例转换回多可用区部署。然后,主节点和辅助节点都具有数据库邮件配置。有关说明,请参阅从 Microsoft SQL Server 数据库实例删除多可用区

数据库管理员

为本地 SMTP 服务器上的 Amazon RDS 端点或 IP 地址创建允许列表。

SMTP 服务器位于 AWS 网络之外。在本地 SMTP 服务器上,创建一个允许列表,允许服务器与 Amazon RDS 实例或托管在 Amazon RDS 上的Amazon Elastic Compute Cloud (Amazon EC2) 实例的出站端点或 IP 地址进行通信。此进程因组织而异。有关数据库实例端点的更多信息,请参阅查找数据库实例端点和端口号

数据库管理员

移除端口 25 限制。

默认情况下,AWS 会限制 EC2 实例上的端口 25。要取消端口 25 限制,请执行以下操作:

  1. 使用您的 Amazon Web Services account 登录,然后打开 申请取消电子邮件发送限制表单

  2. 输入您的电子邮件地址,以便 Amazon Web Services Support 联系您,告知您的请求的最新情况。

  3. 用例描述字段提供所需信息。

  4. 选择提交

注意:

  • 如果您在多个 Amazon Web Services Region 有实例,请为每个区域提交单独的请求。

  • 处理您的请求最长可能需要 48 小时。

常规 AWS

添加 Route 53 规则,以解析 SMTP 服务器 DNS 查询。

使用 Route 53 解析您的 AWS 资源和本地 SMTP 服务器之间的 DNS 查询。您必须创建将 DNS 查询转发到 SMTP 服务器域的规则,例如 example.com。有关说明,请参阅 Route 53 文档中的创建转发规则

网络管理员
任务描述所需技能

启用数据库邮件。

为数据库邮件创建参数组,将 database mail xps参数设置为 1,然后将数据库邮件参数组与目标 RDS 数据库实例关联。有关说明,请参阅 Amazon RDS 文档中的启用数据库邮件。不要继续进入到这些说明中的配置数据库邮件部分。本地 SMTP 服务器配置与 Amazon SES 不同。

数据库管理员

连接到数据库实例。

从堡垒主机,使用 Microsoft SQL Server Management Studio (SSMS) 连接至 Amazon RDS for SQL Server 数据库实例。有关说明,请参阅连接到运行 Microsoft SQL Server 数据库引擎的数据库实例。如果您遇到任何错误,请参阅相关资源部分中的连接疑难解答参考资料。

数据库管理员

创建配置文件。

在 SSMS 中,输入以下 SQL 语句创建数据库邮件配置文件。替换以下值:

  • 对于 profile_name,请为新配置文件输入一个名称。

  • 对于 description,请输入新配置文件的简要描述。

有关此存储过程及其参数的更多信息,请参阅 Microsoft 文档中的 sysmail_add_profile_sp

EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = 'SQL Alerts profile', @description = 'Profile used for sending outgoing notifications using OM SMTP Server.';
数据库管理员

在个人资料中添加主体。

输入以下 SQL 语句,将公共或私有主体添加到数据库邮件配置文件中。委托人指可以请求获取 SQL Server 资源的实体。替换以下值:

  • 对于 profile_name,请输入您之前创建的配置文件名称。

  • 对于 principal_name,请输入数据库用户或角色的名称。数据库主体必须映射到 SQL Server 身份验证用户、Windows 身份验证用户或 Windows 身份验证组。

有关此存储过程及其参数的更多信息,请参阅 Microsoft 文档中的 sysmail_add_principalprofile_sp

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp @profile_name = 'SQL Alerts profile', @principal_name = 'public', @is_default = 1 ;
数据库管理员

创建账户。

输入以下 SQL 语句创建数据库邮件账户。替换以下值:

  • 对于 account_name,请为新账户输入名称。

  • 对于 description,请输入新账户的简要描述。

  • 对于 email_address,请输入用于发送数据库邮件消息的电子邮件地址。

  • 对于 display_address,请输入用于该账户外发消息的显示名称,例如 SQL Server Automated Notification。您也可以使用为 email_address输入的值。

  • 对于 mailserver_name,请输入 SMTP 邮件服务器名称或 IP 地址。

  • 对于 port,请保留值 25

  • 对于 enable_ssl,如果您不想让数据库邮件使用 SSL 加密通信,请将该值保留为 1或输入 0

  • 对于 username,请输入用于登录 SMTP 邮件服务器的用户名。如果服务器不需要身份验证,请输入 NULL

  • 对于 password,请输入用于登录 SMTP 邮件服务器的密码。如果服务器不需要身份验证,请输入 NULL

有关此存储过程及其参数的更多信息,请参阅 Microsoft 文档中的 sysmail_add_account_sp

EXECUTE msdb.dbo.sysmail_add_account_sp @account_name = 'SQL Alerts account', @description = 'Database Mail account for sending outgoing notifications.', @email_address = 'xyz@example.com', @display_name = 'xyz@example.com', @mailserver_name = 'test_smtp.example.com', @port = 25, @enable_ssl = 1, @username = 'SMTP-username', @password = 'SMTP-password';
数据库管理员

将账户添加到配置文件中。

输入以下 SQL 语句以将数据库邮件账户添加到数据库邮件配置文件中。替换以下值:

  • 对于 profile_name,请输入您之前创建的配置文件名称。

  • 对于 account_name,请输入您之前创建的账户的名称。

有关此存储过程及其参数的更多信息,请参阅 Microsoft 文档中的 sysmail_add_profileaccount_sp

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'SQL Alerts profile', @account_name = 'SQL Alerts account', @sequence_number = 1;
数据库管理员

(可选)向 RDS 数据库实例添加多可用区。

如果要添加带有数据库镜像 (DBM) 或 Always On 可用性组 (AG) 的多可用区,请参阅将多可用区添加至 Microsoft SQL Server 数据库实例中的说明。

数据库管理员

相关的资源