sysmail_add_principalprofile_sp (Transact-SQL)
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
Questa stored procedure è di proprietà del ruolo db_owner . È possibile concedere EXECUTE
autorizzazioni per qualsiasi utente, ma queste autorizzazioni possono 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 ApplicationUser
del msdb
database . Il profilo è il profilo predefinito per l'utente.
EXEC 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.
EXEC msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'public',
@profile_name = 'AdventureWorks Public Profile',
@is_default = 1;