Quais são as permissões corretas para a conta de serviço para executar o databasemail?

1

Eu configurei o email do banco de dados em uma instância do SQL Server 2005 e continuei recebendo essa mensagem de log sempre que um email era tentado:

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

Após verificar se minha configuração estava correta, tentei adicionar o usuário da conta de serviço ao grupo sysadmin, o que resolveu o problema.

Mas gostaria de saber se isso é necessário ou se o problema específico de permissões foi simplesmente coberto pela função sysadmin. Existe alguma permissão mais granular que eu deveria estar usando?

    
por Faisal 16.07.2013 / 20:22

1 resposta

2

Sim, há algo menos drástico do que sysadmin !

Para usar o email do banco de dados, o usuário deve ser um usuário no banco de dados msdb e um membro da função de banco de dados DatabaseMailUserRole em msdb .

USE msdb
CREATE USER MailUser FOR LOGIN MailUser
GO
EXEC sp_addrolemember @rolename='DatabaseMailUserRole', @membername='MailUser'
GO
    
por 16.07.2013 / 20:48