2010-08-16 6 views
27

J'ai un compte Windows avec le groupe d'utilisateurs et j'essaye d'executer sp_send_dbmail mais en obtenant une erreur: le nom du profil n'est pas valide. Cependant, quand je me suis connecté en tant qu'administrateur et que j'ai exécuté le sp_send_dbmail, il a réussi à envoyer l'e-mail si évidemment le nom du profil existe sur le serveur. Quelqu'un peut-il m'aider?nom de profil n'est pas valide

Répondre

37

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, puis vous les verrez dans l'assistant de messagerie lorsque vous maintenez la sécurité du courrier.

Lire la sécurité: http://msdn.microsoft.com/en-us/library/ms175887.aspx

Voir une liste des procédures de mail: http://msdn.microsoft.com/en-us/library/ms177580.aspx

Exemple de script pour 'TestUser' 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 ; 
+0

Pouvez-vous s'il vous plaît me donner les exemples de scripts comment affecter l'utilisateur au bon groupe? – user384080

+6

Depuis que je suis une personne si gentille;) J'ai fourni ce script pour vous. – Sam

+3

Cette erreur peut également se produire si vous avez spécifié le nom du profil WRONG via certains types de code ... c'est-à-dire, sp_send_dbmail @profile_name = N'Some profil qui n'existe pas ', etc ... va aussi lancer cette erreur . –

13

j'ai eu le même problème aussi. Voici ce que j'ai fait.

Si vous avez déjà terminé, accordez à l'utilisateur/groupe les droits d'utilisation du nom de profil.
1. Rendez-vous à la configuration Wizard of Database Mail
2. Cochez Gérer la sécurité profil
3. Dans l'onglet Profils publics, vérifiez votre nom de profil
4. Dans l'onglet Profils privé, sélectionnez NT AUTHORITY \ NETWORK SERVICE pour le nom d'utilisateur et vérifiez nom de profil
5. Est-ce que # 4 cette fois pour NT AUTHORITY \ SYSTEM nom d'utilisateur
6. Cliquez sur Suivant jusqu'à Terminer.

C'est tout. J'espère que cela aide.

+0

Ce fut la solution pour moi! Merci! –

+0

... aussi pour moi - Merci :) – nesmoht

+1

Que faire si vous n'avez pas "NT AUTHORITY \ NETWORK SERVICE" en tant qu'utilisateur dans votre instance particulière de SQL? Je l'ai résolu d'une autre manière. Voir ma réponse ci-dessus. – Fandango68

0

Avez-vous activé le profil pour l'Agent SQL Server? C'est une étape commune qui est manquée lors de la création de profils de messagerie dans DatabaseMail.

Étapes:

  • Faites un clic droit sur SQL Server Agent dans l'Explorateur d'objets (SSMS)
  • Cliquez sur Propriétés
  • Cliquez sur l'onglet système d'alerte dans la barre de navigation à gauche
  • Activez le le profil de messagerie
  • Définir le profil du courrier et du système de messagerie
  • Cliquez sur OK
  • Redémarrez l'Agent SQL Server
Questions connexes