J'ai un compte Windows avec un groupe d'utilisateurs et j'essaie d'exécuter sp_send_dbmail mais une erreur s'est produite: le nom du profil n'est pas valide. Cependant, lorsque je me suis connecté en tant qu'administrateur et que j'ai exécuté sp_send_dbmail, il a réussi à envoyer l'e-mail. Le nom du profil existe bien évidemment sur le serveur.
Vous devez accorder à l'utilisateur ou au groupe des droits d'utilisation du profil. Ils doivent être ajoutés à la base de données msdb. Ils seront ensuite disponibles dans l'assistant de messagerie lorsque vous assurerez la sécurité du courrier.
Lisez la sécurité ici: http://msdn.Microsoft.com/en-us/library/ms175887.aspx
Consultez la liste des procédures de messagerie ici: http://msdn.Microsoft.com/en-us/library/ms177580.aspx
Exemple de script pour 'TestUser' pour utiliser le profil nommé 'General Admin Mail'.
USE [msdb]
GO
CREATE USER [TestUser] FOR LOGIN [testuser]
GO
USE [msdb]
GO
EXEC sp_addrolemember N'DatabaseMailUserRole', N'TestUser'
GO
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'General Admin Mail',
@principal_name = 'TestUser',
@is_default = 1 ;
J'ai le même problème aussi. Voici ce que j'ai fait.
Si vous avez déjà terminé, accordez à l'utilisateur/au groupe les droits d'utilisation du nom de profil.
1. Accédez à la configuration Wizard de Database Mail
2. Cochez Gérer la sécurité du profil
3. Dans l'onglet Profils publics, vérifiez le nom de votre profil.
4. Sur l'onglet Profils privés, sélectionnez NT AUTHORITY\NETWORK SERVICE pour le nom d'utilisateur et vérifiez le nom de votre profil.
5. Faites # 4 cette fois pour NT AUTHORITY\SYSTEM nom d'utilisateur
6. Cliquez sur Suivant jusqu'à Terminer.
C'est tout. J'espère que ça aide.
Avez-vous activé le profil pour l'agent SQL Server ? Il s'agit d'une étape courante manquée lors de la création de profils de messagerie dans DatabaseMail.
Pas:
Dans mon cas, je déplaçais un SProc entre des serveurs et le nom du profil dans mon code TSQL ne correspond pas au nom du profil sur le nouveau serveur.
Mise à jour du nom de profil TSQL == Le nouveau nom de profil de serveur a corrigé l'erreur pour moi.
nom de profil n'est pas valide [SQLSTATE 42000] (erreur 14607)
Cela m'est arrivé après avoir copié le script de travail d'un ancien serveur SQL vers un nouveau serveur SQL. Dans SSMS, sous Gestion, le nom du profil de messagerie de la base de données était différent dans le nouveau serveur SQL. Tout ce que je devais faire était de mettre à jour le nom dans le script de travail.