Announcement

Collapse
No announcement yet.

rechtlos und entehrt...;) Hiiilfe!

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

  • rechtlos und entehrt...;) Hiiilfe!

    Ich muss/möchte ein http-request vom Sqlserver abfeuern um auf ein Ereignis zu reagieren...

    klappt im Prinzip über OLE ganz gut.

    (also :

    EXEC @rc = sp_OACreate 'MSXML2.ServerXMLHTTP', @objServ OUT .... usw)

    nu aber der riesen Pferdefoß, an den ich nicht gedacht habe:

    Das funktioniert leider nur als sysadmin ....

    Ich kann nu aber nicht den Anwender als SA auf den Server loslassen....

    Hat da jemand eine Idee das irgendwie zu umgehen?

  • #2
    Kannst du denn Exec mit EXECUTE AS im Context eines sysadmin ausführen?

    Aufgrund programiertechnischer Vorbelastung würde ich das hier wohl über eine .Net Stored Proc lösen und dort dann einfach einen HttpRequest feuern ohne COM. Oder gleich in einer Anwendung vor der DB?
    Warum passiert das eigentlich in der DB?

    Comment


    • #3
      Warum passiert das eigentlich in der DB?
      .... wie so oft im Leben, weil es eigentlich geht


      Naja - Ziel ist eigentlich auf ein Ereignis in der Datenbank halt zu reagieren und dann das http-request abzufeuern - in einem Trigger halt (ok, ist so'n Tick von mir mit dem getriggere - ich gelobe Besserung)

      Ich finde das nur halt immer sehr charmant, wenn ich in der Anwendung mir was spare... clients traue ich halt manchmal nur soweit wie ich sie werfen kann

      Comment


      • #4
        Originally posted by tömmel
        nu aber der riesen Pferdefoß, an den ich nicht gedacht habe:

        Das funktioniert leider nur als sysadmin ....

        .... wie so oft im Leben, weil es eigentlich geht


        Naja - Ziel ist eigentlich auf ein Ereignis in der Datenbank halt zu reagieren und dann das http-request abzufeuern - in einem Trigger halt (ok, ist so'n Tick von mir mit dem getriggere - ich gelobe Besserung)

        Ich finde das nur halt immer sehr charmant, wenn ich in der Anwendung mir was spare... clients traue ich halt manchmal nur soweit wie ich sie werfen kann
        Also Rollen und Rechte sind dazu da vergebenzu werden.

        Wenn der Vorschlag von Ralf Jansen nicht ins "Konzept" passt:
        Eine Wrapper SP drumrum unter einem anderen (SQL-) User, der Mitglied dieser Rolle ist.
        Die Execute Rechte dafür an "den" Nutzer granten.

        Ich bin kein MSSQL Fachmann, unter Oracle kann man definieren in welchem "Owner/Rechtekontext" eine SP ausgeführt wird, Creator oder User. Creator ist default und das passt idR.

        P.S.: nennt sich dort invoker oder definer rights, nicht creator /user.
        Gruß, defo

        Comment


        • #5
          @defo...

          ja, so ungefähr stell ich mir das jetzt auch vor --- war gerade aber echt geschockt, weil ich glatt verpeilt hab... (erst gemerkt als einer heulte : geht nich...)

          Comment


          • #6
            Hi,

            hatte mal etwas ähnliches, aber war nicht wegen der Rechte sondern wegen der Entkopplung vom Trigger. Vielleicht lässt sich das System auch bei deinem Problem verwenden:
            - der Trigger schreibt ein Flag in eine Hilfstabelle
            - eine stored proc, die sa-Berechtigungen hat, wird als Startprozedur beim Start der Instanz mitgestartet (siehe sp_procoption), diese beinhaltet eine Endlosschleife mit einem WAITFOR DELAY 00:00:01, in der also im Sekundenabstand geprüft wird, ob in der Hilfstabelle ein Flag steht und wenn ja, eine entsprechende Funktion ausführt und das Flag löscht.
            Diese stored proc läuft also solange, bis die Instanz wieder gestoppt wird!

            Habe das jetzt seit etwa 3 Jahren im Echteinsatz, bisher gab es noch kein einziges Problem damit, diese Endlosschleife merkt man im Leerlauf performancemäßig überhaupt nicht und wenn die Funktion ausgeführt wird, dann braucht man die entsprechenden Resourcen sowieso, egal durch was sie ausgelöst wird.
            Die Sache ist nur, dass es in meinem Fall eben bis zu 1 Sekunde Verzögerung geben kann, wenn das nicht geht, ist meine Lösung wahrscheinlich nicht verwendbar. Sonst einfach mal probieren :-)

            bye,
            Helmut

            Comment


            • #7
              @hwoess

              ich hab es dann doch die clients machen lassen - hätte sonst gegebenenfalls stunden gedauert, bis da alles sortiert und umgebaut ist.... ist zum Glück sooo wichtig an der stelle auch wieder nicht .. kommt ein Client z.B. nicht in's Internet .. dann soll er es halt lassen oder den Admin flott machen...

              Comment

              Working...
              X