1)异常信息

1)异常信息

我有一台运行 SQL Server 2008 R2 的独立计算机,我将其加入了域。我设置了一个 MSA,并将所有 SQL 服务设置为在其下登录。我可以远程访问数据库并运行查询,但数据库邮件不起作用。我在 MSDB 中为 MSA 帐户创建了一个用户,并将其添加到 DatabaseMailUserRole 角色。发送测试电子邮件时出现以下错误:

1)异常信息

异常类型:Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException 消息:无法从数据库读取邮件配置信息。数据:System.Collections.ListDictionaryInternal TargetSite:Microsoft.SqlServer.Management.SqlIMail.Server.Objects.Account GetAccount(Int32) HelpLink:NULL 来源:DatabaseMailEngine

StackTrace 信息

在 Microsoft.SqlServer.Management.SqlIMail.Server.DataAccess.DataAccessAdapter.GetAccount(Int32 accountID) 在 Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandFactory.CreateSendMailCommand(DBSession dbSession) 在 Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandFactory.CreateCommand(DBSession dbSession) 在 Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandRunner.Run(DBSession db) 在 Microsoft.SqlServer.Management.SqlIMail.IMailProcess.ThreadCallBack.MailOperation(Object o)

2)异常信息

异常类型:System.Data.SqlClient.SqlException 错误:System.Data.SqlClient.SqlErrorCollection 类:16 行号:1 编号:15247 过程:sp_PostAgentInfo 服务器:CCPC\GRDB 状态:1 来源:.Net SqlClient 数据提供程序 错误代码:-2146232060 消息:用户无权执行此操作。数据:System.Collections.ListDictionaryInternal TargetSite:Void OnError(System.Data.SqlClient.SqlException, Boolean) 帮助链接:NULL

StackTrace 信息

在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection) 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔 breakConnection) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() 在 System.Data.SqlClient.SqlDataReader.get_MetaData() 在System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds、RunBehavior runBehavior、String resetOptionsString)位于 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior、RunBehavior runBehavior、Boolean returnStream、Boolean async)位于 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、Boolean returnStream、String method、DbAsyncResult result)位于 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、Boolean returnStream、String method)位于System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为,字符串方法)位于 System.Data.SqlClient.SqlCommand.ExecuteReader()位于 Microsoft.SqlServer.Management.SqlIMail.Server.DataAccess.DataAccessAdapter.GetAccount(Int32 accountID)

答案1

经过多次搜索和反复尝试后,问题已修复。

1)找到实例的Binn目录,并赋予MSA用户执行权限。
2)exec sp_addsrvrolemember 'MSA', 'SysAdmin'

不知道为什么这最后一步是必要的,或者它是否安全,但它现在有效了。

相关内容