robcwi 10 Geschrieben 18. Oktober 2010 Melden Teilen Geschrieben 18. Oktober 2010 Hallo zusammen, habe mich nun nach einigen Jahren "mitlesen" auch endlich mal registriert. Freue mich schon auf die Beiträge, die ich vllt. auch beisteuern kann. Momentan plagt mich das folgende Szenario: Es handelt sich um eine .NET Anwendung eines Herstellers, wo ich nicht an alle Ecken herankomme. Grundsätzlich unterstützt das System den Versand von E-Mails, allerdings ohne Anhänge. Jetzt habe ich aus einem Workflowschritt heraus die Möglichkeit SQL-Statements auszuführen. Ich habe also die zu verschickende Mail in eine Tabelle eingefügt. Hier liegt nun ein Trigger, der es mir erlaubt diese E-Mail mit der sp_send_dbmail vom SQL2008 zu versenden. In meiner Entwicklungsumgebung funktioniert dies soweit Problemlos, da App-Server und DB-Server auf dem gleichen Server laufen. Beim Kunden sind es zwei Server. Um nun aber Attachments vom SQL-Server zu versenden habe ich eine Freigabe, um vom SQL-Server an die Attachments heranzukommen. Die Anwendung authentifiziert sich mit SQL-Server-Auth am SQL-Server. Wenn ich nun über die Anwendung versuche eine Mail zu verschicken erhalte ich die folgende Meldung: The client connection security context could not be impersonated. Attaching files require an integrated client login Nach ein wenig googlen bin ich darauf gekommen den EXEC-Befehl der meine Mail verschicken soll aus dem Trigger in eine SP umzuziehen, da ich hier die Möglichkeit habe EXECUTE AS zu verwenden. Auszug der SP: CREATE procedure [dbo].[sende_mail](@EMPFAENGER varchar(1000), @TEXT varchar(1000), @BETREFF varchar(1000), @ATTACHMENT varchar(1000) ) with execute as 'dbo' AS begin EXEC msdb.dbo.sp_send_dbmail @profile_name ..... Nun habe ich allerdings das Problem, dass ich diese Meldung bekomme: Die EXECUTE-Berechtigung wurde für das 'sp_send_dbmail'-Objekt, 'msdb'-Datenbank, 'dbo'-Schema, verweigert Dem User fehlt mit Sicherheit noch irgendwo ein Recht. Habe schon viel rumprobiert aber bis jetzt bin ich nicht so richtig fündig geworden. Ich bedanke mich im Voraus. Robert. Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 19. Oktober 2010 Melden Teilen Geschrieben 19. Oktober 2010 Moin, um einem User an einer Prozedur das Ausführen Recht zu gewähren führst Du folgendes SQL-Statement aus: (hier z.B. für die Rolle public): USE msdb GRANT EXECUTE ON dbo.sp_send_dbmail TO public Alternativ über den Manager die Prozedur suchen - Eigenschaften - Berechtigungen - dort die entsprechenden Haken setzen. Ob das jetzt bei System-Prozeduren die korrekte Vorgehensweise ist oder ob es gerade für Mail-Profile eine andere Vorgehensweise gibt, weiß ich leider nicht. Gruß Kai Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.