Announcement

Collapse
No announcement yet.

Trigger mit msdb.dbo.sp_send_dbmail funzt nur teilweise

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Trigger mit msdb.dbo.sp_send_dbmail funzt nur teilweise

    Hallo Zusammen,
    vielleicht kann mir hier jemand auf die Sprünge helfen.
    Datenbank MS SQL 2005
    Ich habe folgenden Trigger angelegt der bei einem Insert eine Mail versendet und als Attachment ein Query Result anhängen soll in Form einer Textdatei.
    Das funktioniert auch soweit. Aber die Textdatei kommt leer an obwohl Datensätze in der Tabelle vohanden sind. Das ganze wird ausgelöst durch ein SSIS Paket. Wenn ich den Trigger direkt teste, versendet er den Anhang gefüllt. Ist dies evtl ein Sicherheitsthema ?
    So sieht er aus:
    USE [TESTDATEN]
    GO
    /****** Objekt: Trigger [dbo].[Fehler_Materialstamm_Trigger01] Skriptdatum: 12/04/2009 08:11:14 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER TRIGGER [dbo].[Fehler_Materialstamm_Trigger01] ON [dbo].[Fehler_Materialstamm]
    AFTER INSERT
    AS
    EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'sendmail',
    @recipients = '[email protected]',
    @execute_query_database = 'Testdatenbank',
    @query = 'SELECT * [dbo].[Fehler_Materialstamm]',
    @body = 'Testmessage Materialdaten Import Fehler',
    @subject = 'Materialdaten Import Fehler fehlerhafte Zeilen siehe Anhang',
    @attach_query_result_as_file = '1'
    GO

  • #2
    Irgendwas stimmt da nicht. Der SQL-Befehl "select * [dbo].[Fehler_Materialstamm]" wirft mit Sicherheit einen Syntax-Fehler weil das "from" fehlt. Insofern kann das nicht gehen, auch wenn man es mit der Hand auslöst.

    bye,
    Helmut

    Comment


    • #3
      Helmut,
      sorry...das 'from' steht natürlich drinnen....habs hier nicht richtig reingetippert

      @query = 'SELECT * from [dbo].[Fehler_Materialstamm]',

      Comment


      • #4
        Hi,

        funktionieren denn ander von Triggern angestossene SSIS-Pakete?

        Also ich habe jedenfalls ewig gebraucht, bis ich den SQL-Server-Agent dazu gebracht hatte, SSIS-Pakete auszuführen. Es sind da tatsächlich umfangreiche Rechte zu vergeben.
        (siehe u.a. hier)

        Kann man denn irgendwo einstellen unter welcher Identität der Trigger läuft?

        Comment


        • #5
          was passiert wenn du es mal so probierst:

          ...
          @execute_query_database = 'master',
          @query = 'SELECT ''Test''',
          ...


          bye,
          Helmut

          Comment


          • #6
            Hallo Stefan,
            ja die funktionieren, das mit der Berechtigung ist klar, man muss für die Pakete bereits vor dem erstellen ein Passwort vergeben. Dann im MSQL importieren und mit Rechte versehen. Das ist alles durchgeführt worden. Das Paket läuft auch sauber durch, die Mail wird auch versendet ,allerdings wie o.g mit einem leeren Anhang.

            Comment


            • #7
              Helmut, muss ich testen..geb dann wieder Info..
              Danke
              und schönes WE
              Gerhard

              Comment


              • #8
                Problem gefunden

                So..nu hab ich es gefunden..
                Problem war tatsächlich ein Berechtigungsproblem..

                Der User mit dem das Paket erstellt wurde hatte keine Berechtigung die Mail zu versenden. Seltsam nur das trotzdem eine Mail rausging.

                Um Datenbank-E-Mails zu senden, müssen Benutzer in der msdb-Datenbank vorhanden sein und Mitglied der Datenbankrolle DatabaseMailUserRole in der msdb-Datenbank sein

                Thema kann geschlossen werden ;-)

                Comment

                Working...
                X