Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server
Istanza gestita di SQL di Azure
Concede l'autorizzazione per un'entità msdb di database per l'uso di un profilo Posta elettronica database. L'entità di database deve eseguire il mapping a un utente di autenticazione di SQL Server, a un utente di Windows o a un gruppo di Windows.
In Istanza gestita di SQL di Azure e SQL Server 2022 (16.x), l'entità di database può anche eseguire il mapping a un utente di Microsoft Entra.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sysmail_add_principalprofile_sp
{ [ @principal_id = ] principal_id | [ @principal_name = ] 'principal_name' }
, { [ @profile_id = ] profile_id | [ @profile_name = ] 'profile_name' }
[ , [ @is_default ] = 'is_default' ]
[ ; ]
Argomenti
[ @principal_id = ] principal_id
ID dell'utente o del msdb ruolo del database nel database per l'associazione. @principal_id è int, con il valore predefinito .NULL È necessario specificare @principal_id o @principal_name . Un @principal_id di 0 rende questo profilo un profilo pubblico, concedendo l'accesso a tutte le entità del database.
[ @principal_name = ] 'principal_name'
Nome dell'utente o del ruolo del database nel msdb database per l'associazione. @principal_name è sysname, con il valore predefinito NULL. È necessario specificare @principal_id o @principal_name . Un @principal_name di public rende questo profilo un profilo pubblico, concedendole l'accesso a tutte le entità del database.
[ @profile_id = ] profile_id
ID del profilo per l'associazione. @profile_id è int, con il valore predefinito NULL. È necessario specificare @profile_id o @profile_name .
[ @profile_name = ] 'profile_name'
Nome del profilo per l'associazione. @profile_name è sysname, senza impostazione predefinita. È necessario specificare @profile_id o @profile_name .
[ @is_default = ] is_default
Indica se il profilo è il profilo predefinito per l'entità. A un'entità può essere associato un solo profilo predefinito. @is_default è bit, senza impostazione predefinita.
Valori del codice restituito
0 (esito positivo) o 1 (errore).
Osservazioni:
Per rendere pubblico un profilo, specificare un @principal_id di 0 o un @principal_name di public. Un profilo pubblico è disponibile per tutti gli utenti nel msdb database, anche se gli utenti devono anche essere membri di DatabaseMailUserRole per eseguire sp_send_dbmail.
Un utente del database può avere un solo profilo predefinito. Quando @is_default è 1 e l'utente è già associato a uno o più profili, il profilo specificato diventa il profilo predefinito per l'utente. Il profilo che in precedenza era il profilo predefinito è tuttora associato all'utente, ma non è più il profilo predefinito.
Quando @is_default è 0 e non esiste alcuna altra associazione, la stored procedure restituisce un errore.
La stored procedure sysmail_add_principalprofile_sp si trova nel msdb database ed è di proprietà dello dbo schema. La procedura deve essere eseguita con un nome in tre parti se il database corrente non msdbè .
Autorizzazioni
È possibile concedere EXECUTE autorizzazioni per questa procedura, ma queste autorizzazioni potrebbero essere sottoposte a override durante un aggiornamento di SQL Server.
Esempi
R. Creare un'associazione e impostare il profilo predefinito
Nell'esempio seguente viene creata un'associazione tra il profilo denominato AdventureWorks Administrator Profile e l'utente ApplicationUserdel msdb database . Il profilo è il profilo predefinito per l'utente.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'ApplicationUser',
@profile_name = 'AdventureWorks Administrator Profile',
@is_default = 1;
B. Rendere un profilo il profilo pubblico predefinito
L'esempio seguente rende il profilo AdventureWorks Public Profile pubblico predefinito per gli utenti nel msdb database.
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'public',
@profile_name = 'AdventureWorks Public Profile',
@is_default = 1;