![]() |
In Datenbank direkt eintragen oder vom Server machen lassen
Hallo zusammen,
ich muss einen Agent programmieren der Daten lokal auf einem Client, der in einem Netzwerk steht, ermittelt und diese Daten in eine Datenbank schreiben soll. Ich habe mir zwei Varianten überlegt : 1. Der Agent ermittelt alle Daten und trägt diese direkt auf der Datenbank ein. 2. Der Agent ermittelt alle Daten, stellt den SQL - Befehl zusammen und schickt diesen dann als reinen Text an den Server. Dort läuft ein Programm, welches dann den Befehl ausführt. So, ich bin aber irgendwie mit beiden Varianten nicht zufrieden. Bei der ersten habe ich auf mehreren Client den gleichen Usernamen und das gleiche Passwort. Was ich für eine erhebliche Sicherheitslücke halte. Bei der zweiten Variante schicke ich alles an den Server und der muss das Abarbeiten. Da könnte ich eventuell in ein Zeitproblem reinlaufen, wenn zu viele Daten auf einmal ankommen und ich habe auch eine Zeitverzögerung bezüglich der Aktualität der Daten. Der Agent soll keine Anmeldung ausspucken, wo sich der User erst anmelden muss. Der Dienst soll sozusagen im Hintergrund laufen. Wie würdet Ihr das ganze Problem angehen und welche Ideenvorschläge habt Ihr ? |
Re: In Datenbank direkt eintragen oder vom Server machen las
Vorschlag :
Würde den Agenten als Client an der Datenbank anmelden und ihn die SQL-Befehle zum Dateneintrag generieren lassen. Man könnte die Rechte des Agenten schreibend auf eine Tabelle beschränken und löschen verbieten. Die weitere Aufbereitung der Daten würde ich dann per StoredProcedure abarbeiten lassen. Die sollte dann von einem anderen Client mit mehr Rechten aufgerufen werden. // Grüße // Martin |
Re: In Datenbank direkt eintragen oder vom Server machen las
Wenn es bei deiner Methode 2 Zeitprobleme gibt, wird es die bei Methode 1 erst recht geben. Denn da käme ja je INSERT/UPDATE SQL noch der Overhead für den Remote-Zugriff hinzu. (evtl. noch ein SELECT um rauszufinden ob INSERT oder UPDATE...) Also Daten remote zusammenstellen, dann im Block rüberschicken und auf dem Server lokal einpflegen, z.b. so wie vom Vorposter vorgeschlagen, ist allemal schneller als Variante 1.
PMM |
Re: In Datenbank direkt eintragen oder vom Server machen las
Zitat:
Zitat:
Was mir dann noch so eingefallen ist, wäre ja eine Single Sign-on Anmeldung. Damit hätte ich den Benutzernamen aus dem Netzwerk und für jeden Client eine eigene Anmeldung. Wäre das eventuell eine andere Alternative ? |
Re: In Datenbank direkt eintragen oder vom Server machen las
Was ist denn dabei, einen Dumpfbackenuser einzurichten, der INSERT-REchte an einer einzigen Tabelle hat und sonst rein gar nix vom Rest der DB sieht. Du kannst ja auch eine eigene DB nur für diesen User erstellen. Ein Job im Hintergrund (läuft im Server) verarbeitet dann die Tabelle.
So hast Du ein integres Konzept und nicht noch einen (anfälligen) Dienst. Auf dem SQL-Server sollte sowieso nur ein Programm laufen. Der Server und sonst nix. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz