服务帐户运行数据库邮件的正确权限是什么?

服务帐户运行数据库邮件的正确权限是什么?

我在 SQL Server 2005 实例上设置了数据库邮件,并且每次尝试发送电子邮件时都会收到此日志消息:

Message
1) Exception Information

Exception Type: System.NullReferenceException
Message: Object reference not set to an instance of an object.
Data: System.Collections.ListDictionaryInternal
TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.AccountGetAccount(Int32)
HelpLink: NULL
Source: DatabaseMailEngine

检查以确保我的设置正确后,我尝试将服务帐户用户添加到 sysadmin 组,从而解决了该问题。

但我想知道这是否有必要,或者特定权限问题是否只是由系统管理员角色覆盖。我是否应该使用一些更细粒度的权限?

答案1

是的,有一些事情不那么激烈sysadmin

要使用数据库邮件,用户必须是数据库中的用户,并且是数据库角色msdb的成员。DatabaseMailUserRolemsdb

USE msdb
CREATE USER MailUser FOR LOGIN MailUser
GO
EXEC sp_addrolemember @rolename='DatabaseMailUserRole', @membername='MailUser'
GO

相关内容