Um E-Mails mit Datenbank-E-Mail in SQL Server zu senden, muss ein Benutzer Mitglied der DatabaseMailUserRole sein in der msdb Datenbank und haben Zugriff auf mindestens ein Datenbank-E-Mail-Profil.
Um einem Benutzer Zugriff auf ein Datenbank-E-Mail-Profil mit T-SQL zu gewähren, verwenden Sie sysmail_add_principalprofile_sp
gespeicherte Prozedur in der msdb
Datenbank.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DB Admin Profile',
@principal_name = 'Marge',
@is_default = 1;
In diesem Fall gewähre ich dem Benutzer „Marge“ Zugriff auf das Profil „DB Admin Profile“.
Dies setzt voraus, dass das Profil und der Benutzer bereits existieren.
In diesem Fall habe ich auch @is_default = 1
angegeben , wodurch dies zum Standardprofil für den Benutzer wird.
Benutzer-/Profil-IDs angeben
Sie können alternativ die Benutzer-ID und/oder die Konto-ID anstelle ihrer Namen angeben.
Daher könnten wir das vorherige Beispiel so ändern, dass es etwa so aussieht:
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_id = 1,
@principal_id = 25,
@is_default = 1;
Dies setzt natürlich voraus, dass dies die IDs für die betreffenden Konten sind.
Beachten Sie, dass entweder der Name oder die ID angegeben werden muss.
Wenn Sie die IDs bereitstellen, werden sie außerdem als int bereitgestellt .
Beachten Sie, dass die Datei sysmail_add_principalprofile_sp
gespeicherte Prozedur befindet sich in der msdb
Datenbank und gehört dbo
Schema. Daher müssen Sie eine dreiteilige Benennung verwenden, wenn Sie sie von außerhalb der msdb
ausführen Datenbank.
Öffentliche Profile
Sie können ein Profil auch zum standardmäßigen öffentlichen Profil für Benutzer in der msdb machen Datenbank.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DB Public Profile',
@principal_name = 'public',
@is_default = 1;
Um ein Profil öffentlich zu machen, geben Sie eine @principal_id
an von 0
oder ein @principal_name
von public
. Ein öffentliches Profil steht allen Benutzern in der msdb zur Verfügung Datenbank (obwohl Benutzer auch Mitglied von DatabaseMailUserRole sein müssen um sp_send_dbmail
auszuführen ).
Beachten Sie, dass es nur ein öffentliches Standardprofil geben kann.
Datenbank-E-Mail konfigurieren
Bei den obigen Schritten wird davon ausgegangen, dass Sie bereits ein Datenbank-E-Mail-Profil erstellt und diesem Profil mindestens ein Datenbank-E-Mail-Konto hinzugefügt haben.
Ein vollständiges Beispiel für das Konfigurieren von Datenbank-E-Mail und das anschließende Senden einer E-Mail finden Sie unter E-Mail-Versand in SQL Server.