Jakie uprawnienia potrzebuje konto usługi do korzystania z poczty bazy danych?

9

Mam instancję programu SQL Server 2012 uruchomioną na koncie usługi zarządzanej. Skonfigurowałem pocztę bazy danych z jednym kontem i próbuję wysłać testową wiadomość e-mail, ale dostaję błędy w dziennikach zdarzeń serwera:

Instancja aparatu bazy danych = MYINSTANCE; Mail PID = 2132; Komunikat o błędzie: Aktualizacja bazy danych nie powiodła się. Powód: Odmówiono pozwolenia EXECUTE dla obiektu „sysmail_logmailevent_sp”, bazy danych „msdb”, schematu „dbo”.

Instancja aparatu bazy danych = MYINSTANCE; Mail PID = 2212; Typ wyjątku: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException Komunikat: odczyt w bazie danych nie powiódł się. Powód: Odmówiono pozwolenia EXECUTE dla obiektu „sp_readrequest”, bazy danych „msdb”, schematu „dbo”. Data: System.Collections.ListDictionaryInternal TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand (System.Data.SqlClient.SqlCommand) HelpLink: NULL Źródło: DatabaseMailEngine

Jeśli sprawię, że konto z uruchomionym programem SQL Server przetworzy sysadmin, ten błąd zniknie, a wiadomości będą wysyłane pomyślnie. Jednak wszystkie badania, które przeprowadziłem, sugerują, że przypisanie temu DatabaseMailUserRoleroli roli w msdbbazie danych powinno wystarczyć. Zrobiłem to i nadal otrzymuję te same błędy.

Zajrzałem do BOL, ale nic nie znalazłem.

Mansfield
źródło
Czy serwer SQL i agent SQL działają na tym samym koncie?
Kin Shah,
@kin Nie, osobne konta (oba konta usług zarządzanych).
Mansfield
czy możesz spróbować uruchomić agenta SQL z tym samym kontem usługi, co serwer SQL - tylko po to, aby go wykluczyć i sprawdzić, czy to działa?
Kin Shah,
@Kin Ma uprawnienie sysadmin, więc będzie działać. Na razie dałem uprawnienia administratora głównego konta usługi i wszystko działa - jestem ciekawy, czy to za dużo.
Mansfield

Odpowiedzi:

4

Konto usługi agenta SQL Server wymaga uprawnień sysadmin w instancji.

Microsoft KB

Nabil Becker
źródło