Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Conceder um acesso de usuário msdb a um perfil do Database Mail no SQL Server (T-SQL)


Para enviar email usando o Database Mail no SQL Server, um usuário deve ser membro do DatabaseMailUserRole no msdb banco de dados e ter acesso a pelo menos um perfil do Database Mail.

Para conceder a um usuário acesso a um perfil do Database Mail com T-SQL, use o sysmail_add_principalprofile_sp procedimento armazenado no msdb base de dados.

Exemplo


Aqui está um exemplo para demonstrar.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'DB Admin Profile',
    @principal_name = 'Marge',
    @is_default = 1;

Neste caso concedo ao usuário “Marge” acesso ao perfil “DB Admin Profile”.

Isso pressupõe que o perfil e o usuário já existam.

Neste caso, também especifiquei @is_default = 1 , o que torna este o perfil padrão para o usuário.

Especificar IDs de usuário/perfil


Você também pode especificar o ID do usuário e/ou o ID da conta em vez de seus nomes.

Portanto, poderíamos alterar o exemplo anterior para algo assim:
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_id = 1,
    @principal_id = 25,
    @is_default = 1;

Obviamente, isso pressupõe que esses são os IDs das contas em questão.

Observe que o nome ou o ID devem ser fornecidos.

Além disso, ao fornecer os IDs, eles são fornecidos como int .

Observe que o sysmail_add_principalprofile_sp procedimento armazenado está no msdb banco de dados, e é de propriedade do dbo esquema. Portanto, você precisará usar a nomenclatura de três partes se executá-la de fora do msdb base de dados.

Perfis públicos


Você também pode tornar um perfil o perfil público padrão para usuários no msdb base de dados.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'DB Public Profile',
    @principal_name = 'public',
    @is_default = 1;

Para tornar um perfil público, especifique um @principal_id de 0 ou um @principal_name de public . Um perfil público está disponível para todos os usuários no msdb banco de dados (embora os usuários também devam ser membros de DatabaseMailUserRole para executar sp_send_dbmail ).

Observe que só pode haver um perfil público padrão.

Configurando o Database Mail


As etapas acima pressupõem que você já criou um perfil do Database Mail e adicionou pelo menos uma conta do Database Mail a esse perfil.

Consulte Como enviar email no SQL Server para obter um exemplo completo de configuração do Database Mail e, em seguida, enviar um email.