none
לא מצליח לשלוח מייל דרך Agent Job RRS feed

  • שאלה

  • היי,

    יש לי ג'וב עם מספר שלבים שאחד מהם הוא הסקריפט הבא לשליחת מייל:

    EXEC msdb.dbo.sp_send_dbmail
        @profile_name = 'DBA',
        @recipients = 'myname@domain.org.il;',
        @subject = 'Order ',
        @body = '',
        @query =  ' select 1+3 ';
          

    הכול כמובן עובד שמריצים דרך ה- sms

     חסכתי לפורום את השאילתה האמיתית, אבל גם ה- select הזה נכשל שהוא מבוצע דרך ה- Job.

    בדקתי הרשאות לוגים וכו' וזה לא עובד. כשהגו'ב נכשל הוא שולח מייל דרך ההגדרה של notification ברמת הג'וב ככה שאין בעיה בmail

    מישהו מכיר?

    יום שני 16 יולי 2012 13:48

תשובות

  • שלום,

    בתור התחלה מהי השגיאה שמקבלים  שהג'וב נכשל?

    האם המשתמש של ה SSMS  הוא אותו משתמש של SQL Server Agent ?

    במידה ולא, הייתי בודק הרצה מתוך SSMS עם המשתמש של ה Agent  - אני מניח שהיא תכשל ...

    ואז צריך לבדוק את ההרשאות שיש למשתמש זה.
    ישנה גם אפשרות לעבוד עם Proxy account  - וכמובן שצריך לתת לו השראות מתאימות
    http://msdn.microsoft.com/en-us/library/ms189064(v=sql.105).aspx

    מקווה שעזרתי
    נועם

    • הוצע כתשובה על-ידי pituachMVP, Editor יום שני 16 יולי 2012 15:16
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 22 יולי 2012 10:40
    יום שני 16 יולי 2012 14:55

כל התגובות

  • שלום,

    בתור התחלה מהי השגיאה שמקבלים  שהג'וב נכשל?

    האם המשתמש של ה SSMS  הוא אותו משתמש של SQL Server Agent ?

    במידה ולא, הייתי בודק הרצה מתוך SSMS עם המשתמש של ה Agent  - אני מניח שהיא תכשל ...

    ואז צריך לבדוק את ההרשאות שיש למשתמש זה.
    ישנה גם אפשרות לעבוד עם Proxy account  - וכמובן שצריך לתת לו השראות מתאימות
    http://msdn.microsoft.com/en-us/library/ms189064(v=sql.105).aspx

    מקווה שעזרתי
    נועם

    • הוצע כתשובה על-ידי pituachMVP, Editor יום שני 16 יולי 2012 15:16
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 22 יולי 2012 10:40
    יום שני 16 יולי 2012 14:55
  • היי,

    קודם כוולהודעת השגיאה:

    Error formatting query, probably invalid parameters [SQLSTATE 42000] (Error 22050).  The step failed.

    אכן הרצתי עם היוזר של ה-AGENT וזה נכשל, אבל אז הגדרתי את הגוב עם היוזר שאתו הריצה כן מצליחה דרך ה-SMS ו- אותה הודעה.

    אותו כנ"ל לגבי גוב חדש שיצרתי שמכיל רק את הסקריפט הזה.

    אבל אז הרצתי את הסקריפט בלי ה- @query וזה עבד.

    איפה טעינו?

    יום שלישי 17 יולי 2012 05:48
  • הי ערן,

    עם איזה משתמש רץ ה-Job Step? (במילים אחרות, מה מופיע ב-"Run  As"?)

    עם איזה Account רץ ה-Service של ה-SQL Server Agent?

    איזה הרשאות יש ל-Account הזה ב-SQL Server?

    -----------------------------
    גיא גלנצר
    יועץ ומדריך SQL Server
    Madeira - SQL Server Services
    http://www.madeira.co.il

    יום שני 23 יולי 2012 08:00
    מנחה דיון
  • היי,

    הבעיה בשרת ספציפי בו לא ניתן לשלוח מיילים עם שאילתות, אפילו אם זה select 1+2. כשאני מוריד את ה- @query מהסקריפט, המייל נשלח.

    ניסתי בכל המשתמשים שהם דומיין admins.

    כשניסיתי בשרת SQL אחר, שרץ עם אותם משתמשים- זה עובד.

    ???

    יום שני 23 יולי 2012 08:32
  • הי ערן,

    כמו שנועם ציין, זו כנראה בעיה של הרשאות.

    אם תוכל לבדוק ולענות על השאלות ששאלתי, אני מקקוה שאוכל לעזור...

    1. עם איזה משתמש רץ ה-Job Step? (במילים אחרות, מה מופיע ב-"Run  As"?)
    2. עם איזה Account רץ ה-Service של ה-SQL Server Agent?
    3. איזה הרשאות יש ל-Account הזה ב-SQL Server?

    תודה!

    -----------------------------
    גיא גלנצר
    יועץ ומדריך SQL Server
    Madeira - SQL Server Services
    http://www.madeira.co.il

    יום שני 23 יולי 2012 08:42
    מנחה דיון
  • היי,

    מה מופיע ב-"Run  As"?---

    תשובה: כלום. ( גם בשרת שזה כן עובד ודרך אגב, באף גוב לא מופיע משהו ואני לא יכול להוסיף משהו)

    בכל מקרה ה- owner של הג'וב הוא domain admin

    עם איזה Account רץ ה-Service של ה-SQL Server Agent?  

    תשובה: domain admin - אותו חשבון שמריץ את ה- sql server service

    איזה הרשאות יש ל-Account הזה ב-SQL Server?

    db_owner

    תודה.



    • נערך על-ידי eran2b יום שני 23 יולי 2012 08:54
    יום שני 23 יולי 2012 08:51
  • הי,

    יכול להיות שהבעיה קשורה לבסיס הנתונים שבו אתה מנסה להריץ את השאילתה.

    נסה לשנות את בסיס הנתונים שבו רץ ה-Job Step ל-"msdb" (אם זה לא היה ככה עד עכשיו), והשתמש בפרמטר "execute_query_dsatabase@" בשביל לציין את שם בסיס הנתונים שבו צריכה לרוץ השאילתה.

    -----------------------------
    גיא גלנצר
    יועץ ומדריך SQL Server
    Madeira - SQL Server Services
    http://www.madeira.co.il

    יום שני 23 יולי 2012 10:33
    מנחה דיון
  • שיניתי כל מה שהצעת, אבל הוא נופל בגלל אותה סיבה.

    ניסיתי גם לשנות ל- master וכו'.

    דרך ה-SMS  זה רץ כמובן.

    יום שני 23 יולי 2012 10:45
  • הי,

    השרשור הזה מתחיל להיות ארוך מדי...

    אתה מוזמן להתקשר אלי (054-2346606), וננסה לפתור את זה יחד בטלפון...

    -----------------------------
    גיא גלנצר
    יועץ ומדריך SQL Server
    Madeira - SQL Server Services
    http://www.madeira.co.il

    יום שני 23 יולי 2012 11:03
    מנחה דיון
  • תודה רבה. אתקשר.

    יום רביעי 25 יולי 2012 05:15