Compartir a través de


sysmail_add_principalprofile_sp (Transact-SQL)

Concede permiso a un usuario o un rol de base de datos para usar un perfil de Correo electrónico de base de datos.

Icono de vínculo a temasConvenciones 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
    Es el identificador del usuario o el rol de la base de datos msdb de la asociación. principal_id es de tipo int y tiene el valor predeterminado NULL. Debe especificarse principal_id o principal_name. El valor 0 para principal_id convierte este perfil en público, lo que concede acceso a todas las entidades de seguridad de la base de datos.

  • [ @principal_name = ] 'principal_name'
    Es el nombre del usuario o el rol de la base de datos msdb de la asociación. principal_name es de tipo sysname y tiene el valor predeterminado NULL. Debe especificarse principal_id o principal_name. El valor 'public' para principal_name convierte este perfil en público, lo que acceso a todas las entidades de seguridad de la base de datos.

  • [ @profile_id = ] profile_id
    Es el Id. del perfil para la asociación. profile_id es de tipo int y su valor predeterminado es NULL. Debe especificarse profile_id o profile_name.

  • [ @profile_name = ] 'profile_name'
    Es el nombre del perfil para la asociación. profile_name es de tipo sysname y no tiene ningún valor predeterminado. Debe especificarse 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 sólo un perfil predeterminado. is_default es de tipo bit y no tiene valor predeterminado.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

Para hacer que un perfil sea público, especifique un @principal_id con el valor 0 o un @principal_name con el valor public. Hay un perfil público disponible para todos los usuarios de la base de datos msdb, aunque los usuarios deben ser también miembros de DatabaseMailUserRole para ejecutar sp_send_dbmail.

El usuario de la base de datos sólo puede tener un perfil predeterminado. Si @is_default es '1' y el usuario ya está asociado con uno o varios perfiles, el perfil especificado se convierte en el perfil predeterminado del usuario. El perfil predeterminado anterior sigue estando asociado con el usuario, pero ya no es el perfil predeterminado.

Si @is_default es '0' y no existe otra asociación, el procedimiento almacenado devuelve un error.

El procedimiento almacenado sysmail_add_principalprofile_sp se encuentra en la base de datos msdb y pertenece al esquema dbo. El procedimiento se debe ejecutar con un nombre de tres partes si la base de datos actual no es msdb.

Permisos

Los permisos de ejecución para este procedimiento corresponden de forma predeterminada a los miembros del rol fijo de servidor sysadmin.

Ejemplos

A. Crear una asociación y configurar el perfil predeterminado

En el ejemplo siguiente se crea una asociación entre el perfil denominado AdventureWorks2008R2 Administrator Profile y el usuario de la base de datos msdbApplicationUser. El perfil es el predeterminado del usuario.

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @principal_name = 'ApplicationUser',
    @profile_name = 'AdventureWorks2008R2 Administrator Profile',
    @is_default = 1 ;

B. Convertir un perfil en el perfil público predeterminado

En el siguiente ejemplo se configura el perfil AdventureWorks2008R2 Public Profile como perfil público predeterminado para los usuarios de la base de datos msdb.

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