Compartir a través de


Crear un perfil de Correo electrónico de base de datos

Se aplica a:SQL Server

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 obtener más información sobre los perfiles de correo, vea Objetos de configuración de Correo electrónico de base de datos.

Sugerencia

No es necesario crear un perfil de correo electrónico de base de datos en Instancia administrada de Azure SQL, que ya está configurado para buscar un perfil denominado AzureManagedInstance_dbmail_profile. Para más información y un script de ejemplo, consulte Notificaciones de trabajo del Agente SQL de Azure SQL Managed Instance.

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.

Usar 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

Para los pasos siguientes, se usa SQL Server Management Studio (SSMS). Descargue la versión más reciente de SSMS en aka.ms/ssms.

  1. En el Explorador de objetos, conéctese a la instancia de SQL Server donde desea configurar Correo electrónico de base de datos y expanda el árbol del servidor.

  2. Expanda el nodo Administración .

  3. Haga doble clic en Correo electrónico de base de datos para abrir el Asistente para configuración de Correo electrónico de base de datos.

  4. 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.

  5. En la página Administrar perfiles y cuentas , seleccione la opción Crear nuevo perfil y seleccione Siguiente.

  6. 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.

  7. 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

  1. Abra el Asistente para configuración del Correo electrónico de base de datos.

  2. 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.

  3. En la página Administrar perfiles y cuentas , seleccione la opción Administrar seguridad del perfil y seleccione Siguiente.

  4. En la pestaña Perfiles privados , active la casilla correspondiente al perfil que desea configurar y seleccione Siguiente.

  5. 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

  1. Abra el Asistente para configuración del Correo electrónico de base de datos.

  2. 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.

  3. En la página Administrar perfiles y cuentas , seleccione la opción Administrar seguridad del perfil y seleccione Siguiente.

  4. En la pestaña Perfiles públicos , active la casilla correspondiente al perfil que desea configurar y seleccione Siguiente.

  5. 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 para crear un perfil de correo electrónico de base de datos

Para ejecutar comandos T-SQL en la instancia de SQL Server, use SQL Server Management Studio (SSMS), la extensión MSSQL para Visual Studio Code, sqlcmd o la herramienta de consulta T-SQL favorita.

Creación de un perfil de correo electrónico de base de datos privada con T-SQL

  1. Conéctese a la instancia de SQL Server. Abra una nueva ventana de consulta.

  2. Para crear un nuevo perfil, ejecute el procedimiento almacenado del sistema sysmail_add_profile_sp:

    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 es una descripción opcional del perfil.

  3. Para cada cuenta, ejecute el procedimiento almacenado del sistema sysmail_add_profileaccount_sp:

    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 ejemplo anterior, @profile_name es el nombre del perfil y @account_name es el nombre de la cuenta que se va a agregar al perfil, @sequence_number determina el orden en el que se usan las cuentas en el perfil.

  4. 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 del sistema sysmail_add_principalprofile_sp:

    EXECUTE msdb.dbo.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 ejemplo anterior, @profile_name es el nombre del perfil, @principal_name es el nombre del usuario o rol de la base de datos y @is_default determina si este perfil es el valor 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 ;  

Creación de un perfil público de correo electrónico de base de datos con T-SQL

  1. Conéctese a la instancia de SQL Server. Abra una nueva ventana de consulta.

  2. Para crear un nuevo perfil, ejecute el procedimiento almacenado del sistema sysmail_add_profile_sp (Transact-SQL):

    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 es una descripción opcional del perfil.

  3. Para cada cuenta, ejecute el procedimiento almacenado sysmail_add_profileaccount_sp (Transact-SQL):

    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 ejemplo anterior, @profile_name es el nombre del perfil y @account_name es el nombre de la cuenta que se va a agregar al perfil, @sequence_number determina el orden en el que se usan las cuentas en el perfil.

  4. Para conceder acceso público, ejecute el procedimiento almacenado sysmail_add_principalprofile_sp (Transact-SQL):

    EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
      @profile_name = 'Name of the profile' 
    , @principal_name = 'public or 0'  
    , @is_default = 'Default Profile enabled';
    

    En el script de ejemplo anterior, @profile_name es el nombre del perfil y @principal_name , para indicar que se trata de un perfil público, @is_default determina si este perfil es el valor 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 ;