Freigeben über


Erstellen eines Profils für Datenbank-E-Mail

Gilt für:SQL Server

Verwenden Sie den Assistenten zum Konfigurieren von Datenbank-E-Mail oder Transact-SQL, um öffentliche und private Datenbank-E-Mail-Profile zu erstellen. Weitere Informationen zu E-Mail-Profilen finden Sie unter Database Mail Configuration Objects.

Tipp

Das Erstellen eines Datenbank-E-Mail-Profils ist in Azure SQL Managed Instance nicht erforderlich, da diese bereits für die Suche nach einem Profil namens AzureManagedInstance_dbmail_profile konfiguriert ist. Weitere Informationen und ein Beispielskript finden Sie unter Azure SQL Managed Instance SQL-Agent-Auftragsbenachrichtigungen.

Voraussetzungen

Erstellen Sie mindestens ein Datenbank-E-Mail-Konto für das Profil. Weitere Informationen zum Erstellen von Datenbank-E-Mail-Konten finden Sie unter Erstellen eines Kontos für Datenbank-E-Mail.

Sicherheit

Mit einem öffentlichen Profil kann jeder Benutzer mit Zugriff auf die msdb-Datenbank E-Mail mithilfe dieses Profils senden. Ein privates Profil kann von einem Benutzer oder einer Rolle verwendet werden. Durch Gewähren des Rollenzugriffs auf Profile wird eine leichter zu verwaltende Architektur geschaffen. Um E-Mail zu senden, müssen Sie Mitglied der DatabaseMailUserRole in der msdb-Datenbank sein und Zugriff auf mindestens ein Datenbankprofil besitzen.

Berechtigungen

Der Benutzer, der die Profilkonten erstellt und gespeicherte Prozeduren ausführt, sollte Mitglied der festen Serverrolle "sysadmin" sein.

Verwenden des Datenbank-E-Mail-Konfigurations-Assistenten zum Erstellen eines Datenbank-E-Mail-Profils

In den folgenden Schritten wird hierzu SQL Server Management Studio (SSMS) verwendet: Laden Sie die neueste Version von SSMS unter aka.ms/ssms herunter.

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit der SQL Server-Instanz her, in der Sie Datenbank-E-Mail konfigurieren möchten, und erweitern Sie die Serverstruktur.

  2. Erweitern Sie den Knoten Verwaltung .

  3. Doppelklicken Sie auf Datenbank-E-Mail , um den Datenbank-E-Mail-Konfigurations-Assistenten zu öffnen.

  4. Aktivieren Sie auf der Seite Konfigurationsaufgabe auswählen die Option Konten und Profile für Datenbank-E-Mail verwalten, und klicken Sie auf Weiter.

  5. Aktivieren Sie auf der Seite Profile und Konten verwalten, aktivieren Sie die Option Neues Profil erstellen, und wählen Sie Weiter.

  6. Geben Sie auf der Seite Neues Profil den Profilnamen und die Beschreibung ein, und fügen Sie die ins Profil einzuschließenden Konten hinzu. Wählen Sie anschließend Weiter.

  7. Überprüfen Sie auf der Seite Assistenten abschließen die auszuführenden Aktionen, und wählen Sie Fertig stellen, um die Erstellung des neuen Profils abzuschließen.

So konfigurieren Sie ein privates Datenbank-E-Mail-Profil

  1. Öffnen Sie den Assistenten zum Konfigurieren von Datenbank-E-Mail.

  2. Aktivieren Sie auf der Seite Konfigurationsaufgabe auswählen die Option Konten und Profile für Datenbank-E-Mail verwalten , und wählen Sie Weiter.

  3. Aktivieren Sie auf der Seite Profile und Konten verwalten die Option Profilsicherheit verwalten, und wählen Sie Weiter.

  4. Aktivieren Sie auf der Registerkarte Private Profile das Kontrollkästchen für das zu konfigurierende Profil, und wählen Sie Weiter.

  5. Überprüfen Sie auf der Seite Assistenten abschließen die auszuführenden Aktionen, und wählen Sie Fertig stellen , um die Konfiguration des Profils abzuschließen.

So konfigurieren Sie ein öffentliches Datenbank-E-Mail-Profil

  1. Öffnen Sie den Assistenten zum Konfigurieren von Datenbank-E-Mail.

  2. Aktivieren Sie auf der Seite Konfigurationsaufgabe auswählen die Option Konten und Profile für Datenbank-E-Mail verwalten , und wählen Sie Weiter.

  3. Aktivieren Sie auf der Seite Profile und Konten verwalten die Option Profilsicherheit verwalten, und wählen Sie Weiter.

  4. Aktivieren Sie auf der Registerkarte Öffentliche Profile das Kontrollkästchen für das zu konfigurierende Profil, und wählen Sie Weiter.

  5. Überprüfen Sie auf der Seite Assistenten abschließen die auszuführenden Aktionen, und wählen Sie Fertig stellen , um die Konfiguration des Profils abzuschließen.

Verwenden von Transact-SQL zum Erstellen eines Datenbank-E-Mail-Profils

Verwenden Sie ZUM Ausführen von T-SQL-Befehlen auf Ihrer SQL Server-Instanz SQL Server Management Studio (SSMS), die MSSQL-Erweiterung für Visual Studio Code, sqlcmd oder Ihr bevorzugtes T-SQL-Abfragetool.

Erstellen eines privaten Datenbank-E-Mail-Profils mit T-SQL

  1. Stellen Sie eine Verbindung mit der SQL Server-Instanz her. Öffnen Sie ein neues Abfragefenster.

  2. Führen Sie zum Erstellen eines neuen Profils die gespeicherte Systemprozedur sysmail_add_profile_sp aus:

    EXECUTE msdb.dbo.sysmail_add_profile_sp
      @profile_name = 'Profile Name'  
    , @description = 'Description';
    

    Im vorherigen Skript @profile_name ist der Name des Profils und @description eine optionale benutzerfreundliche Beschreibung des Profils.

  3. Führen Sie für jedes Konto die gespeicherte Systemprozedur sysmail_add_profileaccount_sp aus:

    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name = 'Profile Name'
    , @account_name = 'Name of the account'  
    , @sequence_number = 'sequence number of the account within the profile.';
    

    Im vorherigen Beispielskript @profile_name ist der Name des Profils und @account_name der Name des Kontos, das dem Profil hinzugefügt werden soll, @sequence_number bestimmt die Reihenfolge, in der die Konten im Profil verwendet werden.

  4. Erteilen Sie für jede Datenbankrolle oder jeden Benutzer, der E-Mails über dieses Profil sendet, Zugriff auf das Profil. Führen Sie dazu die gespeicherte Systemprozedur sysmail_add_principalprofile_sp aus:

    EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
     @profile_name = 'Name of the profile'
    , @principal_name = 'Name of the database user or role'  
    , @is_default = 'Default profile enabled';
    

    Im vorherigen Beispielskript @profile_name ist der Name des Profils, @principal_name der Name des Datenbankbenutzers oder der Datenbankrolle und @is_default bestimmt, ob dieses Profil der Standard für den Datenbankbenutzer oder die Datenbankrolle ist.

Im folgenden Beispiel werden ein Datenbank-E-Mail-Konto und ein privates Konto für Datenbank-E-Mail erstellt. Anschließend wird das Konto zum Profil hinzugefügt und der Datenbankrolle DBMailUsers in der msdb-Datenbank Zugriff auf das Profil erteilt.

-- Create a Database Mail account  
EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'AdventureWorks Administrator',  
    @description = 'Mail account for administrative e-mail.',  
    @email_address = 'dba@Adventure-Works.com',  
    @replyto_address = 'danw@Adventure-Works.com',  
    @display_name = 'AdventureWorks Automated Mailer',  
    @mailserver_name = 'smtp.Adventure-Works.com' ;  

-- Create a Database Mail profile  
EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @description = 'Profile used for administrative mail.' ;  

-- Add the account to the profile  
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @account_name = 'AdventureWorks Administrator',  
    @sequence_number =1 ;  

-- Grant access to the profile to the DBMailUsers role  
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @profile_name = 'AdventureWorks Administrator Profile',  
    @principal_name = 'ApplicationUser',  
    @is_default = 1 ;  

Erstellen eines öffentlichen Datenbank-Mail-Profils mit T-SQL

  1. Stellen Sie eine Verbindung mit der SQL Server-Instanz her. Öffnen Sie ein neues Abfragefenster.

  2. Führen Sie zum Erstellen eines neuen Profils die gespeicherte Systemprozedur sysmail_add_profile_sp (Transact-SQL) aus:

    EXECUTE msdb.dbo.sysmail_add_profile_sp
      @profile_name = 'Profile Name'  
    , @description = 'Description';
    

    Im vorherigen Skript @profile_name ist der Name des Profils und @description eine optionale Beschreibung des Profils.

  3. Führen Sie für jedes Konto die gespeicherte Prozedur sysmail_add_profileaccount_sp (Transact-SQL) aus:

    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name = 'Name of the profile'  
    , @account_name* = 'Name of the account'  
    , @sequence_number* = 'sequence number of the account within the profile.'  
    

    Im vorherigen Beispielskript @profile_name ist der Name des Profils und @account_name der Name des Kontos, das dem Profil hinzugefügt werden soll, @sequence_number bestimmt die Reihenfolge, in der die Konten im Profil verwendet werden.

  4. Führen Sie zum Gewähren des öffentlichen Zugriffs die gespeicherte Prozedur sysmail_add_principalprofile_sp (Transact-SQL) aus:

    EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
      @profile_name = 'Name of the profile' 
    , @principal_name = 'public or 0'  
    , @is_default = 'Default Profile enabled';
    

    Im vorherigen Beispielskript ist @profile_name der Name des Profils, und @principal_name gibt an, dass es sich um ein öffentliches Profil handelt. @is_default bestimmt, ob dieses Profil der Standard für den Datenbankbenutzer oder die Datenbankrolle ist.

Im folgenden Beispiel werden ein Datenbank-E-Mail-Konto und ein privates Profil für Datenbank-E-Mail erstellt. Anschließend wird das Konto zum Profil hinzugefügt und öffentlicher Zugriff auf das Profil erteilt.

-- Create a Database Mail account  
EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'AdventureWorks Public Account',  
    @description = 'Mail account for use by all database users.',  
    @email_address = 'db_users@Adventure-Works.com',  
    @replyto_address = 'danw@Adventure-Works.com',  
    @display_name = 'AdventureWorks Automated Mailer',  
    @mailserver_name = 'smtp.Adventure-Works.com' ;  

-- Create a Database Mail profile  
  EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @description = 'Profile used for administrative mail.' ;  

-- Add the account to the profile  
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @account_name = 'AdventureWorks Public Account',  
    @sequence_number =1 ;  

-- Grant access to the profile to all users in the msdb database  
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @profile_name = 'AdventureWorks Public Profile',  
    @principal_name = 'public',  
    @is_default = 1 ;