För att skicka e-post med Database Mail i SQL Server måste en användare vara medlem i DatabaseMailUserRole i msdb databas och ha tillgång till minst en Database Mail-profil.
För att ge en användare åtkomst till en Databas Mail-profil med T-SQL, använd sysmail_add_principalprofile_sp
lagrad procedur i msdb
databas.
Exempel
Här är ett exempel att visa.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DB Admin Profile',
@principal_name = 'Marge',
@is_default = 1;
I det här fallet ger jag användaren "Marge" åtkomst till profilen "DB Admin Profile".
Detta förutsätter att profilen och användaren redan finns.
I det här fallet specificerade jag också @is_default = 1
, vilket gör detta till standardprofilen för användaren.
Ange användar-/profil-ID:n
Du kan alternativt ange användar-ID och/eller konto-ID istället för deras namn.
Därför kan vi ändra det föregående exemplet så att det ser ut ungefär så här:
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_id = 1,
@principal_id = 25,
@is_default = 1;
Detta förutsätter uppenbarligen att det är ID:n för kontona i fråga.
Observera att antingen namnet eller ID:t måste anges.
När ID:n tillhandahålls tillhandahålls de också som int .
Observera att sysmail_add_principalprofile_sp
lagrad procedur finns i msdb
databasen, och den ägs av dbo
schema. Därför måste du använda tre delars namngivning om du kör det utanför msdb
databas.
Offentliga profiler
Du kan också göra en profil till den offentliga standardprofilen för användare i msdb databas.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DB Public Profile',
@principal_name = 'public',
@is_default = 1;
För att göra en profil offentlig, ange ett @principal_id
av 0
eller en @principal_name
av public
. En offentlig profil är tillgänglig för alla användare i msdb databas (även om användare också måste vara medlem i DatabaseMailUserRole för att köra sp_send_dbmail
).
Observera att det bara kan finnas en offentlig standardprofil.
Konfigurera Databas Mail
Ovanstående steg förutsätter att du redan har skapat en Databas Mail-profil och lagt till minst ett Database Mail-konto till den profilen.
Se Hur man skickar e-post i SQL Server för ett komplett exempel på hur man konfigurerar Database Mail och sedan skickar ett e-postmeddelande.