Freigeben über


sysmail_add_principalprofile_sp (Transact-SQL)

Gewährt für einen Datenbankbenutzer oder eine Rolle die Berechtigung zum Verwenden eines Datenbank-E-Mail-Profils.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sysmail_add_principalprofile_sp  { [ @principal_id = ] principal_id | [ @principal_name = ] 'principal_name' } ,
    { [ @profile_id = ] profile_id | [ @profile_name = ] 'profile_name' }
    [ , [ @is_default ] = 'is_default' ]

Argumente

  • [ @principal_id = ] principal_id
    Entspricht der ID des Datenbankbenutzers oder der Rolle in der msdb-Datenbank für die Zuordnung. principal_id ist vom Datentyp int und hat den Standardwert NULL. Es muss entweder principal_id oder principal_name angegeben werden. Wenn principal_id auf 0 festgelegt ist, wird dieses Profil öffentlich, wobei der Zugriff auf alle Prinzipale in der Datenbank erteilt wird.

  • [ @principal_name = ] 'principal_name'
    Entspricht dem Namen des Datenbankbenutzers oder der Rolle in der msdb-Datenbank für die Zuordnung. principal_name ist vom Datentyp sysname und hat den Standardwert NULL. Es muss entweder principal_id oder principal_name angegeben werden. Wenn principal_name auf 'public' festgelegt ist, wird dieses Profil öffentlich, wobei der Zugriff auf alle Prinzipale in der Datenbank erteilt wird.

  • [ @profile_id = ] profile_id
    Die ID des Profils für die Zuordnung. profile_id ist vom Datentyp int und hat den Standardwert NULL. Es muss entweder profile_id oder profile_name angegeben werden.

  • [ @profile_name = ] 'profile_name'
    Der Name des Profils für die Zuordnung. profile_name ist vom Datentyp sysname und hat keinen Standardwert. Es muss entweder profile_id oder profile_name angegeben werden.

  • [ @is_default = ] is_default
    Gibt an, ob dieses Profil das Standardprofil für den Prinzipal ist. Ein Prinzipal darf nur ein Standardprofil besitzen. is_default ist vom Datentyp bit und hat keinen Standardwert.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

Sie können ein Profil öffentlich machen, indem Sie @principal_id auf 0 festlegen oder für @principal_name den Wert public angeben. Ein öffentliches Profil ist für alle Benutzer der msdb-Datenbank verfügbar. Allerdings müssen diese Benutzer auch Mitglieder von DatabaseMailUserRole sein, wenn sie sp_send_dbmail ausführen können sollen.

Ein Datenbankbenutzer kann nur ein Standardprofil besitzen. Wenn @is_default auf '1' festgelegt ist und der Benutzer bereits mehreren Profilen zugeordnet ist, wird das angegebene Profil als Standardprofil für den Benutzer verwendet. Das zuvor als Standardprofil verwendete Profil ist dem Benutzer weiter zugeordnet, es ist jedoch nicht mehr als Standardprofil festgelegt.

Wenn @is_default auf '0' festgelegt ist und keine andere Zuordnung vorhanden ist, gibt die gespeicherte Prozedur einen Fehler zurück.

Die gespeicherte Prozedur sysmail_add_principalprofile_sp befindet sich in der msdb-Datenbank mit dem dbo-Schema als Besitzer. Handelt es sich bei der aktuellen Datenbank nicht um msdb, muss die Prozedur mit einem dreiteiligen Namen ausgeführt werden.

Berechtigungen

Über die Ausführungsberechtigungen für diese Prozedur verfügen standardmäßig die Mitglieder der festen Serverrolle sysadmin.

Beispiele

A. Erstellen einer Zuordnung und Festlegen des Standardprofils

Im folgenden Beispiel wird eine Zuordnung zwischen dem Profil AdventureWorks2008R2 Administrator Profile und dem msdb-Datenbankbenutzer ApplicationUser erstellt. Als Profil wird das Standardprofil des Benutzers verwendet.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @principal_name = 'ApplicationUser',
    @profile_name = 'AdventureWorks2008R2 Administrator Profile',
    @is_default = 1 ;

B. Festlegen eines Profils als öffentliches Standardprofil

In diesem Beispiel wird das Profil AdventureWorks2008R2 Public Profile als öffentliches Standardprofil für Benutzer in der msdb-Datenbank festgelegt.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @principal_name = 'public',
    @profile_name = 'AdventureWorks2008R2 Public Profile',
    @is_default = 1 ;