数据库邮件有两个配置对象:数据库配置对象提供了一种方法,用于配置数据库邮件在从数据库应用程序或 SQL Server 代理发送电子邮件时应使用的设置。
数据库邮件帐户
数据库邮件概况配置文件
数据库邮件配置对象关系
此图显示了两个配置文件、三个帐户和三个用户。 用户 1 有权访问使用帐户 1 和帐户 2 的个人资料 1。 用户 3 可以访问配置文件 2,配置文件 2 使用帐户 2 和帐户 3。 用户 2 有权访问配置文件 1 和配置文件 2。
数据库邮件帐户
数据库邮件帐户包含MICROSOFT SQL Server 用于向 SMTP 服务器发送电子邮件的信息。 每个帐户都包含一个电子邮件服务器的信息。
数据库邮件支持三种与 SMTP 服务器通信的身份验证方法:
Windows 身份验证:数据库邮件使用 SQL Server 数据库引擎 Windows 服务帐户的凭据在 SMTP 服务器上进行身份验证。
基本身份验证:数据库邮件使用指定的用户名和密码在 SMTP 服务器上进行身份验证。
匿名身份验证:SMTP 服务器不需要任何身份验证。 数据库邮件不会使用任何凭据在 SMTP 服务器上进行身份验证。
帐户信息存储在 msdb 数据库中。 每个帐户都包含以下信息:
帐户的名称。
帐户的说明。
帐户的电子邮件地址。
帐户的显示名称。
要用作帐户答复信息的电子邮件地址。
电子邮件服务器的名称。
电子邮件服务器的类型。 对于 Microsoft SQL Server,这始终是简单的邮件传输协议(SMTP)。
电子邮件服务器的端口号。
一个位列,指示是否使用安全套接字层(SSL)连接到 SMTP 邮件服务器。
一个位列,指示是否使用为 SQL Server 数据库引擎配置的凭据连接到 SMTP 服务器。
如果电子邮件服务器需要身份验证,则用于对电子邮件服务器进行身份验证的用户名。
如果电子邮件服务器需要身份验证,则用于对电子邮件服务器进行身份验证的密码。
数据库邮件配置向导提供了一种创建和管理帐户的便捷方法。 还可以使用 msdb 中的配置存储过程来创建和管理帐户。
数据库邮件档案
数据库邮件资料是相关数据库邮件帐户的系统化集合。 使用数据库邮件发送电子邮件的应用程序指定配置文件,而不是直接使用帐户。 将有关单个电子邮件服务器的信息与应用程序使用的对象分开可提高灵活性和可靠性:配置文件提供自动故障转移,因此,如果一个电子邮件服务器无响应,数据库邮件可以自动将邮件发送到另一个电子邮件服务器。 数据库管理员可以添加、删除或重新配置帐户,而无需更改应用程序代码或作业步骤。
配置文件还帮助数据库管理员管理对电子邮件的访问权限。 需要 DatabaseMailUserRole 中的成员身份才能发送数据库邮件。 用户配置为管理员提供了额外的灵活性,用于控制邮件发送者和使用的帐户。
个人资料可以是公开的或私密的。
公共配置文件适用于 msdb 数据库中 DatabaseMailUserRole 数据库角色的所有成员。 它们允许 DatabaseMailUserRole 角色的所有成员使用配置文件发送电子邮件。
专用配置文件 是为 msdb 数据库中的安全主体定义的。 它们仅允许指定的数据库用户、角色以及 sysadmin 固定服务器角色的成员通过该配置文件发送电子邮件。 默认情况下,配置文件是私密的,仅允许访问固定服务器角色 sysadmin 的成员。 若要使用专用配置文件, sysadmin 必须向用户授予使用配置文件的权限。 此外,只有 DatabaseMailUserRole 的成员才被授予对sp_send_dbmail 存储过程的 EXECUTE 权限。 系统管理员必须将用户添加到 DatabaseMailUserRole 数据库角色,以便用户发送电子邮件。
在电子邮件服务器无法访问或无法处理邮件的情况下,配置文件可以提高可靠性。 个人资料中的每个帐户都有一个序列号。 序列号确定数据库邮件使用配置文件中的帐户的顺序。 对于新的电子邮件,数据库邮件使用最后一个成功发送邮件的帐户,或者如果尚未发送邮件,则具有最低序列号的帐户。 如果帐户失败,数据库邮件将使用具有下一个最高序列号的帐户,等等,直到数据库邮件成功发送邮件,或者具有最高序列号的帐户失败。 如果具有最高序列号的帐户失败,则数据库邮件会暂停尝试在 sysmail_configure_spAccountRetryDelay 参数中配置的时间量发送邮件,然后从最低序列号开始尝试再次发送邮件的过程。 使用 sysmail_configure_sp 的 AccountRetryAttempts 参数,配置外部邮件进程尝试使用指定配置文件中的每个帐户发送电子邮件的次数。
如果存在多个具有相同序列号的帐户,则数据库邮件仅对给定的电子邮件使用其中一个帐户。 在这种情况下,数据库邮件无法保证在任何特定的序列号中使用哪个账户,也无法保证在不同邮件中使用同一账户。
数据库邮件配置任务
下表描述了数据库邮件配置任务。
配置任务 | 主题链接 |
---|---|
介绍如何创建数据库邮件帐户 | 创建数据库邮件帐户 |
介绍如何创建数据库邮件配置文件 | 创建数据库邮件配置文件 |
介绍如何配置数据库邮件 | 配置数据库邮件 |
介绍如何使用模板创建数据库邮件配置脚本 |
其他数据库配置任务(系统存储过程)
数据库邮件配置存储过程位于 msdb 数据库中。
下表列出了用于配置和管理数据库邮件的存储过程。
数据库邮件设置
名称 | DESCRIPTION |
---|---|
sysmail_configure_sp(Transact-SQL) | 更改数据库邮件的配置设置。 |
sysmail_help_configure_sp(Transact-SQL) | 显示数据库邮件的配置设置。 |
帐户和个人资料
名称 | DESCRIPTION |
---|---|
sysmail_add_profileaccount_sp(Transact-SQL) | 将邮件帐户添加到数据库邮件配置文件。 |
sysmail_delete_account_sp(Transact-SQL) | 删除数据库邮件帐户。 |
sysmail_delete_profile_sp(Transact-SQL) | 删除数据库邮件配置文件。 |
sysmail_delete_profileaccount_sp(Transact-SQL) | 从 Database Mail 配置文件中移除一个帐户。 |
sysmail_help_account_sp(Transact-SQL) | 列出有关数据库邮件帐户的信息。 |
sysmail_help_profile_sp(Transact-SQL) | 列出有关一个或多个数据库邮件配置文件的信息。 |
sysmail_help_profileaccount_sp(Transact-SQL) | 列出与一个或多个数据库邮件配置文件关联的帐户。 |
sysmail_update_account_sp(Transact-SQL) | 更新现有数据库邮件帐户中的信息。 |
sysmail_update_profile_sp(Transact-SQL) | 更改数据库邮件配置文件的描述文本或名称。 |
sysmail_update_profileaccount_sp(Transact-SQL) | 更新数据库邮件配置文件中帐户的序列号。 |
安全
名称 | DESCRIPTION |
---|---|
sysmail_add_principalprofile_sp(Transact-SQL) | 授予数据库主体使用 Database Mail 配置文件的权限。 |
sysmail_delete_principalprofile_sp(Transact-SQL) | 删除数据库用户使用公共或专用数据库邮件配置文件的权限。 |
sysmail_help_principalprofile_sp(Transact-SQL) | 列出给定数据库用户的数据库邮件配置文件信息。 |
sysmail_update_principalprofile_sp(Transact-SQL) | 更新给定数据库用户的权限信息。 |
系统状态
名称 | DESCRIPTION |
---|---|
sysmail_start_sp(Transact-SQL) | 启动数据库邮件外部程序和关联的 SQL Service Broker 队列。 |
sysmail_stop_sp(Transact-SQL) | 停止数据库邮件外部程序和关联的 SQL Service Broker 队列。 |
sysmail_help_status_sp(Transact-SQL) | 指示数据库邮件是否已启动。 |