Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gewähren Sie einem msdb-Benutzer Zugriff auf ein Datenbank-E-Mail-Profil in SQL Server (T-SQL)

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.