За да изпращате имейл с помощта на Database Mail в SQL Server, потребителят трябва да е член на DatabaseMailUserRole в msdb база данни и имате достъп до поне един профил на Database Mail.
За да предоставите на потребителя достъп до профил на Database Mail с T-SQL, използвайте sysmail_add_principalprofile_sp
съхранена процедура в msdb
база данни.
Пример
Ето пример за демонстрация.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DB Admin Profile',
@principal_name = 'Marge',
@is_default = 1;
В този случай предоставям на потребителя „Marge” достъп до профила „DB Admin Profile”.
Това предполага, че профилът и потребителят вече съществуват.
В този случай също посочих @is_default = 1
, което прави това профил по подразбиране за потребителя.
Посочете идентификатори на потребител/профил
Като алтернатива можете да посочите потребителския идентификатор и/или идентификатора на акаунта вместо техните имена.
Следователно бихме могли да променим предишния пример, за да изглежда така:
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_id = 1,
@principal_id = 25,
@is_default = 1;
Това очевидно предполага, че това са идентификаторите за въпросните акаунти.
Имайте предвид, че трябва да се предостави или името, или идентификационния номер.
Също така, когато се предоставят идентификаторите, те се предоставят като int .
Имайте предвид, че sysmail_add_principalprofile_sp
съхранената процедура е в msdb
база данни и е собственост на dbo
схема. Следователно, ще трябва да използвате три части наименуване, ако го изпълнявате извън msdb
база данни.
Обществени профили
Можете също да направите профил като обществен профил по подразбиране за потребители в msdb база данни.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DB Public Profile',
@principal_name = 'public',
@is_default = 1;
За да направите профил публичен, посочете @principal_id
от 0
или @principal_name
на public
. Публичният профил е достъпен за всички потребители в msdb база данни (въпреки че потребителите трябва също да са членове на DatabaseMailUserRole за изпълнение на sp_send_dbmail
).
Имайте предвид, че може да има само един обществен профил по подразбиране.
Конфигуриране на поща от база данни
Горните стъпки предполагат, че вече сте създали профил на Database Mail и сте добавили поне един акаунт в Database Mail към този профил.
Вижте Как да изпращате имейл в SQL Server за пълен пример за конфигуриране на Database Mail, след което изпращане на имейл.