2012-09-14 5 views
7

ja dostaję ten błąd:Niewykonanie msdb.dbo.sp_send_dbmail

Msg 229, Level 14, State 5, Procedure sp_send_dbmail, Line 1
The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'.

Odpowiedni fragment kodu:

/****** Object: StoredProcedure [dbo].[dbo.STATUSCHANGE_EMAILALERT] ******/ 

EXEC msdb.dbo.sp_send_dbmail 
    @recipients = '[email protected]', -- Group Email 
    @subject = 'Employee Status Update', 
    @profile_name ='[email protected]', -- Setup the profile name group 
    @body = @body, 
    @body_format = 'HTML'; 
+5

Błąd mówi, że nie masz dostępu do przechowywanej procedury 'sp_send_dbmail'. Musisz uzyskać pozwolenie na "WYKONAJ" to – Taryn

+1

Znalazłem to: http://stackoverflow.com/questions/5569511/how-to-give-access-to-sql-server-database-mail-procedures-for- a-login-in-a-diffe –

+0

Myślę, że jest trochę więcej zaangażowania niż samo pozwolenie, opublikuję tutaj, gdy dowiem się więcej. dzięki za komentarz niebieski. Czy zauważyłeś coś, co można poprawić? –

Odpowiedz

2

Grant prawo wykonania sp_send_dbmail użytkownikowi wykonywanie procedury przechowywanej lub dodaj je do roli msdb.DatabaseMailUser.

+0

Czy możesz pokazać mi, w jaki sposób możesz wykonać uprawnienie do wykonywania na sp_send ... –

+0

Opisane; http://msdn.microsoft.com/en-us/library/ms345484(v=sql.100).aspx –

6

Aby wysłać pocztę bazy danych, użytkownicy muszą być użytkownikami w bazie danych msdb i członkiem roli bazy danych DatabaseMailUserRole w bazie danych msdb. Aby dodać użytkowników msdb lub grup do tej roli używać SQL Server Management Studio lub wykonać następujące oświadczenie dla użytkownika lub roli, która potrzebuje do wysyłania poczty bazy danych:

EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole' 
    ,@membername = '<user or role name>'; 
GO 
3

Znaleziony ładne i łatwo naprawić, że pracował dla mnie here:

Jeśli aplikacje SQL nie mogą wysyłać wiadomości e-mail przy użyciu bazy danych (zakładam masz już DBMail konto i ustawienia profilu), istnieją dwie rzeczy do wyboru:

  1. SQL Management Studio> Zarządzanie> bazy danych poczty> kliknij prawym przyciskiem myszy i wybierz Konfiguruj ...> wybierz Zarządzaj profilu zabezpieczeń> Zarządzanie SQL
  2. umieścić czek na opcji PUBLIC
  3. kliknij na domyślny profil i ustawić go na TAK
  4. STUDIO> Bazy danych> Bazy danych System> prawym przyciskiem myszy na MSDB i wybierz NOWA QUERY> następnie wpisz> grant wykonać na sp_send_dbmail do publicznych i kliknij OK