创建数据库邮件配置文件

适用于:SQL ServerAzure SQL 托管实例

使用数据库邮件配置向导或 Transact-SQL 可创建数据库邮件的公共和专用配置文件。 有关邮件配置文件的详细信息,请参阅 数据库邮件配置文件

开始之前

先决条件

为配置文件创建一个或多个数据库邮件帐户。 有关创建数据库邮件帐户的详细信息,请参阅 创建数据库邮件帐户

安全性

公共配置文件允许有权访问 msdb 数据库的任意用户使用该配置文件发送电子邮件。 专用配置文件可由用户或角色来使用。 授予角色访问配置文件的权限可创建更易维护的体系结构。 若要发送邮件,必须是 msdb 数据库中的 DatabaseMailUserRole 的成员,并且至少有权访问一个数据库邮件配置文件。

权限

创建配置文件帐户和执行存储过程的用户应是 sysadmin 固定服务器角色的成员。

使用数据库邮件配置向导

创建数据库邮件配置文件

  • 在对象资源管理器中,连接到要在其上配置数据库邮件的 SQL Server 实例,然后展开服务器树。

  • 展开 “管理” 节点

  • 双击“数据库邮件”以打开数据库邮件配置向导。

  • 在“选择配置任务”页上,选择“管理数据库邮件帐户和配置文件”选项,然后选择“下一步”

  • 在“管理配置文件和帐户”页上,选择“创建新配置文件”选项,然后选择“下一步”

  • 在“新建配置文件”页上,指定配置文件的名称、说明并添加要包括在配置文件中的帐户,然后选择“下一步”

  • 在“完成向导”页上,检查要执行的操作,然后选择“完成”以完成新配置文件的创建

  • 配置数据库邮件专用配置文件:

    • 打开数据库邮件配置向导。

    • 在“选择配置任务”页上,选择“管理数据库邮件帐户和配置文件”选项,然后选择“下一步”

    • 在“管理配置文件和帐户”页上,选择“管理配置文件安全性”选项,然后选择“下一步”

    • 在“专用配置文件”选项卡中,选择要配置的配置文件所对应的复选框,然后选择“下一步”

    • 在“完成向导”页上,检查要执行的操作,然后选择“完成”以完成新配置文件的配置

  • 配置数据库邮件公共配置文件:

    • 打开数据库邮件配置向导。

    • 在“选择配置任务”页上,选择“管理数据库邮件帐户和配置文件”选项,然后选择“下一步”

    • 在“管理配置文件和帐户”页上,选择“管理配置文件安全性”选项,然后选择“下一步”

    • 在“公共配置文件”选项卡中,选择要配置的配置文件所对应的复选框,然后选择“下一步”

    • 在“完成向导”页上,检查要执行的操作,然后选择“完成”以完成新配置文件的配置

使用 Transact-SQL

创建数据库邮件专用配置文件

  • 使用 SQL Server Management Studio (SSMS) 或 Azure Data Studio 连接到 SQL Server 实例。 打开一个新的查询窗口。

  • 要创建新配置文件,请运行系统存储过程 sysmail_add_profile_sp (Transact-SQL),如下所示:

    EXECUTE msdb.dbo.sysmail_add_profile_sp
      @profile_name = 'Profile Name'  
    , @description = 'Description';
    

    在上面的脚本中,@profile_name 是配置文件的名称,@description 是配置文件的说明。 此参数是可选的。

  • 对于每个帐户,运行存储过程 sysmail_add_profileaccount_sp (Transact-SQL),如下所示:

    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name = 'Profile Name'
    , @account_name = 'Name of the account'  
    , @sequence_number = 'sequence number of the account within the profile.';
    

    在上面的脚本中,@profile_name 是配置文件的名称,@account_name 是要添加到配置文件的帐户的名称,@sequence_number 决定了在配置文件中使用帐户的顺序。

  • 对于将使用此配置文件发送邮件的每个数据库角色或用户,请向他们授予对此配置文件的访问权限。 要执行此操作,请运行存储过程 sysmail_add_principalprofile_sp (Transact-SQL),如下所示:

    EXECUTE msdb.sysmail_add_principalprofile_sp
     @profile_name = 'Name of the profile'
    , @principal_name = 'Name of the database user or role'  
    , @is_default = 'Default profile enabled';
    

    在上面的示例脚本中,@profile_name 是配置文件的名称,@principal_name 是数据库用户或角色的名称,@is_default 决定了此配置文件是否是该数据库用户或角色的默认值。

以下示例创建了一个数据库邮件帐户和一个数据库邮件专用配置文件,然后将帐户添加到该配置文件中,并向 msdb 数据库中的 DBMailUsers 数据库角色授予对该配置文件的访问权限

-- Create a Database Mail account  
EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'AdventureWorks Administrator',  
    @description = 'Mail account for administrative e-mail.',  
    @email_address = 'dba@Adventure-Works.com',  
    @replyto_address = 'danw@Adventure-Works.com',  
    @display_name = 'AdventureWorks Automated Mailer',  
    @mailserver_name = 'smtp.Adventure-Works.com' ;  
  
-- Create a Database Mail profile  
EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @description = 'Profile used for administrative mail.' ;  
  
-- Add the account to the profile  
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @account_name = 'AdventureWorks Administrator',  
    @sequence_number =1 ;  
  
-- Grant access to the profile to the DBMailUsers role  
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @principal_name = 'ApplicationUser',  
    @is_default = 1 ;  

创建数据库邮件公共配置文件

  • 连接到 SQL Server 实例。

  • 要创建新配置文件,请运行系统存储过程 sysmail_add_profile_sp (Transact-SQL),如下所示:

    EXECUTE msdb.dbo.sysmail_add_profile_sp
      @profile_name = 'Profile Name'  
    , @description = 'Description';
    

    在上面的脚本中,@profile_name 是配置文件的名称,@description 是配置文件的说明。 此参数是可选的。

  • 对于每个帐户,运行存储过程 sysmail_add_profileaccount_sp (Transact-SQL),如下所示:

    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name = 'Name of the profile'  
    , @account_name* = 'Name of the account'  
    , @sequence_number* = 'sequence number of the account within the profile.'  
    

    在上面的脚本中,@profile_name 是配置文件的名称,@account_name 是要添加到配置文件的帐户的名称,@sequence_number 决定了在配置文件中使用帐户的顺序。

  • 要授予公共访问权限,请运行存储过程 sysmail_add_principalprofile_sp (Transact-SQL),如下所示:

    EXECUTE msdb.sysmail_add_principalprofile_sp
      @profile_name = 'Name of the profile' 
    , @principal_name = 'public or 0'  
    , @is_default = 'Default Profile enabled';
    

    在上面的示例脚本中,@profile_name 是配置文件的名称,@principal_name 用于表示这是一个公开配置文件,@is_default 决定了此配置文件是否是该数据库用户或角色的默认值。

以下示例创建了一个数据库邮件帐户和一个数据库邮件专用配置文件,然后将帐户添加到该配置文件中并授予对该配置文件的公共访问权限。

-- Create a Database Mail account  
EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'AdventureWorks Public Account',  
    @description = 'Mail account for use by all database users.',  
    @email_address = 'db_users@Adventure-Works.com',  
    @replyto_address = 'danw@Adventure-Works.com',  
    @display_name = 'AdventureWorks Automated Mailer',  
    @mailserver_name = 'smtp.Adventure-Works.com' ;  
  
-- Create a Database Mail profile  
  EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @description = 'Profile used for administrative mail.' ;  

-- Add the account to the profile  
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @account_name = 'AdventureWorks Public Account',  
    @sequence_number =1 ;  
  
-- Grant access to the profile to all users in the msdb database  
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @principal_name = 'public',  
    @is_default = 1 ;  

后续步骤