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

Hinzufügen eines Datenbank-E-Mail-Kontos zu einem Profil (T-SQL)

In SQL Server verwendet Datenbank-E-Mail Profile zum Senden der E-Mail und nicht direkt Konten.

Daher müssen Sie zuerst ein Profil und ein Konto erstellen und dann das Konto zum Profil hinzufügen. Sie müssen auch einen Benutzer in der msdb zuweisen Datenbankzugriff auf das Profil.

Verwenden Sie zum Hinzufügen eines Datenbank-E-Mail-Kontos zu einem Profil mit T-SQL den sysmail_add_profileaccount_sp gespeicherte Prozedur in der msdb Datenbank.

Beispiel

Hier ist ein Beispiel für das Hinzufügen eines Datenbank-E-Mail-Kontos zu einem Datenbank-E-Mail-Profil mithilfe von T-SQL.

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'DB Admin Profile',  
    @account_name = 'DB Admin',  
    @sequence_number = 1;

In diesem Fall füge ich das Konto „DB Admin“ dem Profil „DB Admin Profile“ hinzu.

Dies setzt voraus, dass das Profil und der Account bereits existieren.

Sie können einem Datenbank-E-Mail-Profil mehrere Konten hinzufügen. Die Sequenznummer bestimmt die Reihenfolge, in der Konten im Profil verwendet werden. Datenbank-E-Mail beginnt mit dem Konto mit der niedrigsten Sequenznummer. Wenn dieses Konto fehlschlägt, wird das Konto mit der nächsthöheren Sequenznummer verwendet und so weiter.

Wenn mehr als ein Konto mit derselben Sequenznummer vorhanden ist, verwendet Database Mail nur eines dieser Konten für eine bestimmte E-Mail-Nachricht.

Es gibt jedoch keine Garantie dafür, dass dasselbe Konto für nachfolgende Nachrichten verwendet wird. Wenn beispielsweise zwei Konten die Sequenznummer 1 gemeinsam haben, erhalten Sie möglicherweise einige E-Mails von einem Konto und einige von dem anderen Konto.

Konto-/Profil-IDs angeben

Sie können alternativ die Profil-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_profileaccount_sp  
    @profile_id = 1,  
    @account_id = 1,  
    @sequence_number = 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_profileaccount_sp gespeicherte Prozedur befindet sich in der msdb Datenbank und ist im Besitz von dbo Schema. Daher müssen Sie eine dreiteilige Benennung verwenden, wenn Sie sie von außerhalb der msdb ausführen Datenbank.