SQL Server发送邮件需开通用户的权限,否则报错,无法发送邮件。

Msg 229, Level 14, State 5, Procedure sp_send_dbmail, Line 1,EXECUTE permission denied on object 'sp_send_dbmail', database 'msdb', schema 'dbo'.

  显示该账号没有sp_send_dbmail的执行权限,需要在系统库msdb中为该账号增加DatabaseMailUserRole角色。

use msdb
go 
create user testuser for login testuser
go
exec dbo.sp_addrolemember @rolename='DatabaseMailUserRole',
                          @membername='testuser'
go

 再次发送数据库邮件,有可能还是显示错误。

Msg 14607, Level 16, State 1, Procedure sp_send_dbmail, Line 119
profile name is not valid

 显示该账号没有访问数据库邮件profile的权限,需要开通。 

use msdb
go
exec sysmail_add_principalprofile_sp @principal_name='test_user',
                                     @profile_name='test_profile',
                                     @is_default=1
go

 这样该账号就有发送邮件的权限了。

 posted on 2017-11-22 16:49  会飞的金鱼  阅读(569)  评论(0)    收藏  举报