AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein In Datenbank direkt eintragen oder vom Server machen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

In Datenbank direkt eintragen oder vom Server machen lassen

Ein Thema von RWarnecke · begonnen am 1. Feb 2008 · letzter Beitrag vom 1. Feb 2008
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

In Datenbank direkt eintragen oder vom Server machen lassen

  Alt 1. Feb 2008, 14:22
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 ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#2

Re: In Datenbank direkt eintragen oder vom Server machen las

  Alt 1. Feb 2008, 14:38
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
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
PMM

Registriert seit: 17. Feb 2005
101 Beiträge
 
#3

Re: In Datenbank direkt eintragen oder vom Server machen las

  Alt 1. Feb 2008, 15:46
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
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: In Datenbank direkt eintragen oder vom Server machen las

  Alt 1. Feb 2008, 21:33
Zitat von PMM:
Wenn es bei deiner Methode 2 Zeitprobleme gibt, ...
Das ist zumindest meine Meinung, was ich mir vorstellen kann. Ob es wirklich so ist, weiß ich nicht hunderprozentig.


Zitat von mschaefer:
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.
Genau das möchte ich ja nicht.

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 ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: In Datenbank direkt eintragen oder vom Server machen las

  Alt 1. Feb 2008, 22:13
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz