Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Concedere a un utente msdb l'accesso a un profilo di posta elettronica database in SQL Server (T-SQL)

Per inviare e-mail utilizzando Posta elettronica database in SQL Server, un utente deve essere un membro di DatabaseMailUserRole nel msdb database e avere accesso ad almeno un profilo di Posta elettronica database.

Per concedere a un utente l'accesso a un profilo di Posta elettronica database con T-SQL, utilizzare sysmail_add_principalprofile_sp stored procedure nel msdb Banca dati.

Esempio

Ecco un esempio da dimostrare.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'DB Admin Profile',
    @principal_name = 'Marge',
    @is_default = 1;

In questo caso concedo all'utente “Marge” l'accesso al profilo “DB Admin Profile”.

Ciò presuppone che il profilo e l'utente esistano già.

In questo caso ho anche specificato @is_default = 1 , che lo rende il profilo predefinito per l'utente.

Specifica gli ID utente/profilo

In alternativa puoi specificare l'ID utente e/o l'ID account invece dei loro nomi.

Pertanto, potremmo modificare l'esempio precedente in modo che assomigli a questo:

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_id = 1,
    @principal_id = 25,
    @is_default = 1;

Questo ovviamente presuppone che quelli siano gli ID per gli account in questione.

Tieni presente che è necessario fornire il nome o l'ID.

Inoltre, quando si forniscono gli ID, vengono forniti come int .

Nota che il sysmail_add_principalprofile_sp la procedura memorizzata si trova in msdb database ed è di proprietà del dbo schema. Pertanto, dovrai utilizzare la denominazione in tre parti se la esegui dall'esterno di msdb banca dati.

Profili pubblici

Puoi anche impostare un profilo come profilo pubblico predefinito per gli utenti in msdb banca dati.

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

Per rendere pubblico un profilo, specifica un @principal_id di 0 o un @principal_name di public . Un profilo pubblico è disponibile per tutti gli utenti in msdb database (sebbene gli utenti debbano essere anche membri di DatabaseMailUserRole per eseguire sp_send_dbmail ).

Tieni presente che può esistere un solo profilo pubblico predefinito.

Configurazione della posta database

I passaggi precedenti presuppongono che tu abbia già creato un profilo di posta elettronica database e aggiunto almeno un account di posta elettronica database a tale profilo.

Vedere Come inviare e-mail in SQL Server per un esempio completo di configurazione di Posta elettronica database, quindi invio di un'e-mail.