Crear un perfil de Correo electrónico de base de datos
Se aplica a: SQL Server Azure SQL Managed Instance
Para crear perfiles públicos y privados de Correo electrónico de base de datos, use el Asistente para configuración de Correo electrónico de base de datos o Transact-SQL. Para más información sobre los perfiles de correo electrónico, consulte Perfil de Correo electrónico de base de datos.
Antes de empezar
Requisitos previos
Cree una o varias cuentas de correo de base de datos para el perfil. Para obtener más información sobre la creación de cuentas de Correo electrónico de base de datos, vea Crear una nueva cuenta de Correo electrónico de base de datos.
Seguridad
Los perfiles públicos permiten que cualquier usuario con acceso a la base de datos msdb
envíe correo electrónico mediante ese perfil. Un perfil privado puede ser usado por un usuario o por un rol. Al conceder a los roles derechos de acceso a los perfiles, se crea una arquitectura más fácil de mantener. Para enviar correo, debe ser un miembro de DatabaseMailUserRole en la base de datos msdb
y tener acceso como mínimo a un perfil de Correo electrónico de base de datos.
Permisos
El usuario que crea cuentas de perfil y ejecuta procedimientos almacenados debe ser miembro del rol fijo de servidor sysadmin.
Use el Asistente para configuración de Correo electrónico de base de datos
Para crear un perfil de correo electrónico de base de datos
En el explorador de objetos, conecte a la instancia de SQL Server en la que quiera configurar el Correo electrónico de base de datos y expanda el árbol del servidor.
Expanda el nodo Administración .
Haga doble clic en el correo electrónico de base de datos para abrir el asistente de configuración del correo electrónico de base de datos.
En la página Seleccionar tarea de configuración , seleccione la opción Administrar cuentas y perfiles de Correo electrónico de base de datos y seleccione Siguiente.
En la página Administrar perfiles y cuentas , seleccione la opción Crear nuevo perfil y seleccione Siguiente.
En la página Nuevo perfil, especifique el nombre de perfil, la descripción y agregue las cuentas que se van a incluir en el perfil, y seleccione Siguiente.
En la página Finalización del asistente , revise las acciones que realizará y seleccione Finalizar para completar crear el nuevo perfil.
Para configurar un perfil privado de Correo electrónico de base de datos:
Abra el Asistente para configuración del Correo electrónico de base de datos.
En la página Seleccionar tarea de configuración , seleccione la opción Administrar cuentas y perfiles de Correo electrónico de base de datos y seleccione Siguiente.
En la página Administrar perfiles y cuentas , seleccione la opción Administrar seguridad del perfil y seleccione Siguiente.
En la pestaña Perfiles privados , active la casilla correspondiente al perfil que desea configurar y seleccione Siguiente.
En la página Finalización del asistente , revise las acciones que realizará y seleccione Finalizar para completar la configuración del perfil.
Para configurar un perfil público de Correo electrónico de base de datos:
Abra el Asistente para configuración del Correo electrónico de base de datos.
En la página Seleccionar tarea de configuración , seleccione la opción Administrar cuentas y perfiles de Correo electrónico de base de datos y seleccione Siguiente.
En la página Administrar perfiles y cuentas , seleccione la opción Administrar seguridad del perfil y seleccione Siguiente.
En la pestaña Perfiles públicos , active la casilla correspondiente al perfil que desea configurar y seleccione Siguiente.
En la página Finalización del asistente , revise las acciones que realizará y seleccione Finalizar para completar la configuración del perfil.
Uso de Transact-SQL
Crear un perfil privado de Correo electrónico de base de datos
Conéctese a la instancia de SQL Server con SQL Server Management Studio (SSMS) o Azure Data Studio. Abra una nueva ventana de consulta.
Para crear un nuevo perfil, ejecute el procedimiento almacenado del sistema sysmail_add_profile_sp (Transact-SQL) como sigue:
EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = 'Profile Name' , @description = 'Description';
En el script anterior, @profile_name es el nombre del perfil y @description, la descripción del perfil. Este parámetro es opcional.
Para cada cuenta, ejecute el procedimiento almacenado sysmail_add_profileaccount_sp (Transact-SQL) como sigue:
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'Profile Name' , @account_name = 'Name of the account' , @sequence_number = 'sequence number of the account within the profile.';
En el script de muestra anterior @profile_name es el nombre del perfil y @account_name es el nombre de la cuenta que se va a agregar al perfil. Con @sequence_number se determina el orden en que se usan las cuentas en el perfil.
Para cada rol o usuario de base de datos que vaya a enviar correo mediante este perfil, concédale acceso a dicho perfil. Para ello, ejecute el procedimiento almacenado sysmail_add_principalprofile_sp (Transact-SQL) como sigue:
EXECUTE msdb.sysmail_add_principalprofile_sp @profile_name = 'Name of the profile' , @principal_name = 'Name of the database user or role' , @is_default = 'Default profile enabled';
En el script de muestra anterior @profile_name es el nombre del perfil y @principal_name es el nombre del usuario o rol de la base de datos. Con @is_default se determina si este perfil es el predeterminado para el usuario o rol de la base de datos.
El siguiente ejemplo crea una cuenta de Correo electrónico de base de datos, crea un perfil privado de Correo de base de datos y, a continuación, agrega la cuenta al perfil y le concede acceso al rol de base de datos DBMailUsers en la base de datos msdb
.
-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'AdventureWorks Administrator',
@description = 'Mail account for administrative e-mail.',
@email_address = 'dba@Adventure-Works.com',
@replyto_address = 'danw@Adventure-Works.com',
@display_name = 'AdventureWorks Automated Mailer',
@mailserver_name = 'smtp.Adventure-Works.com' ;
-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'AdventureWorks Administrator Profile',
@description = 'Profile used for administrative mail.' ;
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'AdventureWorks Administrator Profile',
@account_name = 'AdventureWorks Administrator',
@sequence_number =1 ;
-- Grant access to the profile to the DBMailUsers role
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'AdventureWorks Administrator Profile',
@principal_name = 'ApplicationUser',
@is_default = 1 ;
Crear un perfil público de Correo electrónico de base de datos
Conéctese a la instancia de SQL Server.
Para crear un nuevo perfil, ejecute el procedimiento almacenado del sistema sysmail_add_profile_sp (Transact-SQL) como sigue:
EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = 'Profile Name' , @description = 'Description';
En el script anterior, @profile_name es el nombre del perfil y @description, la descripción del perfil. Este parámetro es opcional.
Para cada cuenta, ejecute el procedimiento almacenado sysmail_add_profileaccount_sp (Transact-SQL) como sigue:
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'Name of the profile' , @account_name* = 'Name of the account' , @sequence_number* = 'sequence number of the account within the profile.'
En el script de muestra anterior @profile_name es el nombre del perfil y @account_name es el nombre de la cuenta que se va a agregar al perfil. Con @sequence_number se determina el orden en que se usan las cuentas en el perfil.
Para conceder acceso público, ejecute el procedimiento almacenado sysmail_add_principalprofile_sp (Transact-SQL) como sigue:
EXECUTE msdb.sysmail_add_principalprofile_sp @profile_name = 'Name of the profile' , @principal_name = 'public or 0' , @is_default = 'Default Profile enabled';
En el script de muestra anterior @profile_name es el nombre del perfil y @principal_name indica si se trata de un perfil público. Con @is_default se determina si este perfil es el predeterminado para el usuario o rol de la base de datos.
El ejemplo siguiente se crea una cuenta de Correo electrónico de base de datos, crea un perfil privado de Correo electrónico de base de datos, agrega la cuenta al perfil y concede acceso público al perfil.
-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'AdventureWorks Public Account',
@description = 'Mail account for use by all database users.',
@email_address = 'db_users@Adventure-Works.com',
@replyto_address = 'danw@Adventure-Works.com',
@display_name = 'AdventureWorks Automated Mailer',
@mailserver_name = 'smtp.Adventure-Works.com' ;
-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'AdventureWorks Public Profile',
@description = 'Profile used for administrative mail.' ;
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'AdventureWorks Public Profile',
@account_name = 'AdventureWorks Public Account',
@sequence_number =1 ;
-- Grant access to the profile to all users in the msdb database
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'AdventureWorks Public Profile',
@principal_name = 'public',
@is_default = 1 ;