sql >> Base de Datos >  >> RDS >> Sqlserver

Conceder a un usuario de msdb acceso a un perfil de correo de base de datos en SQL Server (T-SQL)

Para enviar correos electrónicos mediante el Correo electrónico de base de datos en SQL Server, un usuario debe ser miembro de DatabaseMailUserRole en el msdb base de datos y tener acceso a al menos un perfil de correo electrónico de base de datos.

Para otorgar a un usuario acceso a un perfil de Correo electrónico de base de datos con T-SQL, use el sysmail_add_principalprofile_sp procedimiento almacenado en el msdb base de datos.

Ejemplo

Aquí hay un ejemplo para demostrarlo.

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

En este caso, otorgo al usuario "Marge" acceso al perfil "Perfil de administrador de base de datos".

Esto supone que el perfil y el usuario ya existen.

En este caso también especifiqué @is_default = 1 , lo que lo convierte en el perfil predeterminado para el usuario.

Especifique ID de usuario/perfil

También puede especificar el ID de usuario y/o el ID de cuenta en lugar de sus nombres.

Por lo tanto, podríamos cambiar el ejemplo anterior para que se vea así:

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

Obviamente, esto supone que esos son los ID de las cuentas en cuestión.

Tenga en cuenta que se debe proporcionar el nombre o la identificación.

Además, al proporcionar los ID, se proporcionan como int .

Tenga en cuenta que sysmail_add_principalprofile_sp el procedimiento almacenado está en msdb base de datos, y es propiedad de dbo esquema. Por lo tanto, deberá usar nombres de tres partes si lo ejecuta desde fuera de msdb base de datos.

Perfiles públicos

También puede hacer que un perfil sea el perfil público predeterminado para los usuarios en msdb base de datos.

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

Para hacer público un perfil, especifique un @principal_id de 0 o un @principal_name de public . Un perfil público está disponible para todos los usuarios en msdb base de datos (aunque los usuarios también deben ser miembros de DatabaseMailUserRole para ejecutar sp_send_dbmail ).

Tenga en cuenta que solo puede haber un perfil público predeterminado.

Configuración del correo electrónico de la base de datos

Los pasos anteriores asumen que ya ha creado un perfil de Correo electrónico de base de datos y agregó al menos una cuenta de Correo electrónico de base de datos a ese perfil.

Consulte Cómo enviar correo electrónico en SQL Server para ver un ejemplo completo de cómo configurar el correo electrónico de la base de datos y luego enviar un correo electrónico.