Добавлен SQL Server 2008 R2 в домен, может ' t отправить электронную почту

У меня был автономный компьютер с 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 Information

в 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 LineNumber: 1 Номер: 15247 Процедура: sp_PostAgentInfo Сервер: CCPC \ GRDB Состояние: 1 Источник: поставщик данных .Net SqlClient Код ошибки: -2146232060 Сообщение: у пользователя нет разрешения на выполнение этого действия. Данные: System.Collections.ListDictionaryInternal TargetSite: Void OnError (System.Data.SqlClient.SqlException, логическое значение) HelpLink: NULL

StackTrace Information

в 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, результат DbAsyncResult) в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior, cmdBehavior, RunBehavior, runBehavior, логический returnStream, метод String) в System.Data.SqlClient.SqlCommand.ExecuteReader (поведение CommandBehavior, метод String) в System.Data.SqlClient.SqlCommand.ExecuteReader () в Microsoft.SqlServer.Management.SqlIMail.Server.DataAccess.DataAccessAdapter.GetAccount (Int32 accountID)

0
задан 29 October 2016 в 20:13
1 ответ

Исправлено после долгого поиска и проб и ошибок.

1) Найдите каталог Binn для экземпляра и дайте пользователю MSA разрешение на выполнение.
2) exec sp_addsrvrolemember 'MSA', 'SysAdmin'

Не знаю, зачем нужен этот последний шаг и безопасен ли он, но теперь он работает.

0
ответ дан 5 December 2019 в 09:23

Теги

Похожие вопросы