sysmail_add_principalprofile_sp (Transact-SQL)
Se aplica a: SQL Server Azure SQL Instancia administrada
Concede permiso para que una msdb
entidad de seguridad de base de datos use un perfil de Correo electrónico de base de datos. La entidad de seguridad de base de datos debe asignarse a un usuario de autenticación de SQL Server, a un usuario de Windows o a un grupo de Windows.
En Azure SQL Instancia administrada y SQL Server 2022 (16.x), la entidad de seguridad de base de datos también puede asignarse a un usuario de Microsoft Entra.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sysmail_add_principalprofile_sp
{ [ @principal_id = ] principal_id | [ @principal_name = ] 'principal_name' }
, { [ @profile_id = ] profile_id | [ @profile_name = ] 'profile_name' }
[ , [ @is_default ] = 'is_default' ]
[ ; ]
Argumentos
[ @principal_id = ] principal_id
Identificador del usuario o rol de la base de datos de la msdb
base de datos para la asociación. @principal_id es int, con un valor predeterminado de NULL
. Se deben especificar @principal_id o @principal_name . Un @principal_id de 0
convierte este perfil en un perfil público, concediéndole acceso a todas las entidades de seguridad de la base de datos.
[ @principal_name = ] 'principal_name'
Nombre del usuario o rol de la base de datos de la msdb
base de datos para la asociación. @principal_name es sysname, con un valor predeterminado de NULL
. Se deben especificar @principal_id o @principal_name . Un @principal_name de public
convierte este perfil en un perfil público, concediéndole acceso a todas las entidades de seguridad de la base de datos.
[ @profile_id = ] profile_id
Identificador del perfil de la asociación. @profile_id es int, con un valor predeterminado de NULL
. Se deben especificar @profile_id o @profile_name .
[ @profile_name = ] 'profile_name'
Nombre del perfil para la asociación. @profile_name es sysname, sin valor predeterminado. Se deben especificar @profile_id o @profile_name .
[ @is_default = ] is_default
Especifica si este perfil es el predeterminado para la entidad de seguridad. Una entidad de seguridad debe tener solo un perfil predeterminado. @is_default es bit, sin valor predeterminado.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Comentarios
Para que un perfil sea público, especifique un @principal_id de 0
o un @principal_name de public
. Un perfil público está disponible para todos los usuarios de la msdb
base de datos, aunque los usuarios también deben ser miembros de DatabaseMailUserRole para ejecutar sp_send_dbmail
.
Un usuario de base de datos solo puede tener un perfil predeterminado. Cuando @is_default es 1
y el usuario ya está asociado a uno o varios perfiles, el perfil especificado se convierte en el perfil predeterminado para el usuario. El perfil predeterminado anterior sigue estando asociado con el usuario, pero ya no es el perfil predeterminado.
Cuando @is_default es 0
y no existe ninguna otra asociación, el procedimiento almacenado devuelve un error.
El procedimiento sysmail_add_principalprofile_sp
almacenado está en la msdb
base de datos y es propiedad del dbo
esquema. El procedimiento debe ejecutarse con un nombre de tres partes si la base de datos actual no msdb
es .
Permisos
Este procedimiento almacenado es propiedad del rol db_owner . Puede conceder EXECUTE
permisos para cualquier usuario, pero estos permisos se pueden invalidar durante una actualización de SQL Server.
Ejemplos
A Crear una asociación y establecer el perfil predeterminado
En el ejemplo siguiente se crea una asociación entre el perfil denominado AdventureWorks Administrator Profile
y el usuario ApplicationUser
de la msdb
base de datos . El perfil es el predeterminado del usuario.
EXEC msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'ApplicationUser',
@profile_name = 'AdventureWorks Administrator Profile',
@is_default = 1;
B. Convertir un perfil en el perfil público predeterminado
En el ejemplo siguiente se convierte el perfil AdventureWorks Public Profile
en el perfil público predeterminado para los usuarios de la msdb
base de datos.
EXEC msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'public',
@profile_name = 'AdventureWorks Public Profile',
@is_default = 1;