我在 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
的成员。DatabaseMailUserRole
msdb
USE msdb
CREATE USER MailUser FOR LOGIN MailUser
GO
EXEC sp_addrolemember @rolename='DatabaseMailUserRole', @membername='MailUser'
GO