sysmail_add_principalprofile_sp (Transact-SQL)
向数据库用户或角色授予使用数据库邮件配置文件的权限。
语法
sysmail_add_principalprofile_sp { [ @principal_id = ] principal_id | [ @principal_name = ] 'principal_name' } ,
{ [ @profile_id = ] profile_id | [ @profile_name = ] 'profile_name' }
[ , [ @is_default ] = 'is_default' ]
参数
[ @principal_id = ] principal_id
关联的 msdb 数据库中数据库用户或角色的 ID。principal_id 的数据类型为 int,默认值为 NULL。必须指定 principal_id 或 principal_name。当 principal_id 为 0 时,该配置文件将成为公共配置文件,并将访问权限授予数据库中的所有主体。[ @principal_name = ] 'principal_name'
关联的 msdb 数据库中数据库用户或角色的名称。principal_name 的数据类型为 sysname,默认值为 NULL。必须指定 principal_id 或 principal_name。当 principal_name 为 'public' 时,会使该配置文件成为公共配置文件,并将访问权限授予数据库中的所有主体。[ @profile_id = ] profile_id
关联的配置文件的 ID。profile_id 的数据类型为 int,默认值为 NULL。必须指定 profile_id 或 profile_name。[ @profile_name = ] 'profile_name'
关联的配置文件的名称。profile_name 的数据类型为 sysname,无默认值。必须指定 profile_id 或 profile_name。[ @is_default = ] is_default
指定配置文件是否为主体数据库的默认配置文件。主体必须且只能有一个默认配置文件。is_default 的数据类型为 bit,无默认值。
返回代码值
0(成功)或 1(失败)
注释
若要将配置文件设置为公共配置文件,请将 @principal_id 指定为 0,或将 @principal_name 指定为 public。公共配置文件可供 msdb 数据库中的所有用户使用,但是用户必须是 DatabaseMailUserRole 的成员才可以执行 sp_send_dbmail。
数据库用户只能有一个默认的配置文件。当 @is_default 为 1,且用户已经与一个或多个配置文件关联时,指定的配置文件将成为该用户的默认配置文件。以前的默认配置文件仍与该用户关联,但不再是默认配置文件。
当 @is_default 为 0 且不存在其他关联时,存储过程将返回错误。
存储过程 sysmail_add_principalprofile_sp 位于 msdb 数据库中,并由 dbo 架构拥有。如果当前数据库不是 msdb,则必须使用由三部分组成的名称来执行该过程。
权限
默认情况下,sysadmin 固定服务器角色的成员拥有执行此过程的权限。
示例
A. 创建一个关联,设置默认配置文件
以下示例在名为 AdventureWorks Administrator Profile 的配置文件与 msdb 数据库用户 ApplicationUser 之间创建一个关联。此配置文件是该用户的默认配置文件。
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'ApplicationUser',
@profile_name = 'AdventureWorks Administrator Profile',
@is_default = 1 ;
B. 将配置文件设置为默认的公共配置文件
以下示例将配置文件 AdventureWorks Public Profile 设置为 msdb 数据库中的用户的默认公共配置文件。
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'public',
@profile_name = 'AdventureWorks Public Profile',
@is_default = 1 ;