sysmail_add_principalprofile_sp (Transact-SQL)
Gilt für: SQL Server Azure SQL Managed Instance
Erteilt berechtigungen für einen msdb
Datenbankprinzipal, um ein Datenbank-E-Mail Profil zu verwenden. Der Datenbankprinzipal muss einem SQL Server-Authentifizierungsbenutzer, einem Windows-Benutzer oder einer Windows-Gruppe zugeordnet werden.
In Azure SQL verwaltete Instanz und SQL Server 2022 (16.x) kann der Datenbankprinzipal auch einem Microsoft Entra-Benutzer zugeordnet werden.
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
Die ID des Datenbankbenutzers oder der Datenbankrolle in der msdb
Datenbank für die Zuordnung. @principal_id ist int mit einem Standardwert von NULL
. Entweder @principal_id oder @principal_name müssen angegeben werden. Ein @principal_id 0
dieses Profils zu einem öffentlichen Profil macht, das Zugriff auf alle Prinzipale in der Datenbank gewährt.
[ @principal_name = ] 'principal_name'
Der Name des Datenbankbenutzers oder der Datenbankrolle in der msdb
Datenbank für die Zuordnung. @principal_name ist "sysname" mit der Standardeinstellung "NULL
. Entweder @principal_id oder @principal_name müssen angegeben werden. Ein @principal_name public
dieses Profils zu einem öffentlichen Profil macht, das Zugriff auf alle Prinzipale in der Datenbank gewährt.
[ @profile_id = ] profile_id
Die ID des Profils für die Zuordnung. @profile_id ist int, mit einem Standardwert von NULL
. Entweder @profile_id oder @profile_name müssen angegeben werden.
[ @profile_name = ] 'profile_name'
Die Name des Profils für die Zuordnung. @profile_name ist "sysname" ohne Standard. Entweder @profile_id oder @profile_name müssen angegeben werden.
[ @is_default = ] is_default
Gibt an, ob dieses Profil das Standardprofil für den Prinzipal ist. Ein Prinzipal muss genau ein Standardprofil haben. @is_default ist bit, ohne Standard.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
Um ein Profil öffentlich zu machen, geben Sie eine @principal_id oder 0
eine @principal_name von public
. Ein öffentliches Profil ist für alle Benutzer in der msdb
Datenbank verfügbar, benutzer müssen jedoch auch Mitglied von DatabaseMailUserRole sein, um diese auszuführen sp_send_dbmail
.
Ein Datenbankbenutzer kann nur über ein Standardprofil verfügen. Wenn @is_default ist und der Benutzer bereits einem oder mehreren Profilen zugeordnet ist 1
, wird das angegebene Profil zum Standardprofil für den Benutzer. Das zuvor als Standardprofil verwendete Profil ist dem Benutzer weiter zugeordnet, es ist jedoch nicht mehr als Standardprofil festgelegt.
Wenn @is_default vorhanden ist und keine andere Zuordnung vorhanden ist 0
, gibt die gespeicherte Prozedur einen Fehler zurück.
Die gespeicherte Prozedur sysmail_add_principalprofile_sp
befindet sich in der msdb
Datenbank und gehört dem dbo
Schema. Die Prozedur muss mit einem dreiteiligen Namen ausgeführt werden, wenn die aktuelle Datenbank nicht msdb
vorhanden ist.
Berechtigungen
Diese gespeicherte Prozedur gehört der db_owner Rolle. Sie können berechtigungen für jeden Benutzer erteilen EXECUTE
, diese Berechtigungen können jedoch während eines SQL Server-Upgrades außer Kraft gesetzt werden.
Beispiele
A. Erstellen einer Zuordnung und Festlegen des Standardprofils
Im folgenden Beispiel wird eine Zuordnung zwischen dem Benannten AdventureWorks Administrator Profile
Profil und dem msdb
Datenbankbenutzer ApplicationUser
erstellt. Als Profil wird das Standardprofil des Benutzers verwendet.
EXEC msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'ApplicationUser',
@profile_name = 'AdventureWorks Administrator Profile',
@is_default = 1;
B. Festlegen eines Profils als öffentliches Standardprofil
Im folgenden Beispiel wird das Profil AdventureWorks Public Profile
als öffentliches Standardprofil für Benutzer in der msdb
Datenbank festgelegt.
EXEC msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'public',
@profile_name = 'AdventureWorks Public Profile',
@is_default = 1;