AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TADOConnection optimale Einstellungen für Mehrfachverwendung
Thema durchsuchen
Ansicht
Themen-Optionen

TADOConnection optimale Einstellungen für Mehrfachverwendung

Ein Thema von Piro · begonnen am 25. Nov 2015 · letzter Beitrag vom 1. Dez 2015
Antwort Antwort
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 25. Nov 2015, 22:35
Datenbank: MS SQL • Version: 2008 • Zugriff über: ADO
Moin zusammen,

ich habe eine Anwendung geschrieben, die Computerdaten ermittelt und diese in eine Datenbank (Cluster) speichert. Dies geschieht während des Login des Benutzers.

Derzeit sind es ca. 6700 Benutzer in unserer Domäne. Der Login ist zwischen 06:30 und 08:30. Es kommt wahrscheinlich vermehrt vor, dass zu bestimmten Zeit viele Benutzer mit Hilfe der Anwendung ihre Daten in die DB schreiben.

Die Anwendung verwendet einen SQL Benutzer, um die Daten in der DB zu speichern. Nun kommt es vermehrt dazu, dass im Server Log Einträge zu finden sind, dass der Login des SQL Benutzers nicht möglich ist, da das Passwort nicht richtig ist. Das kann nicht sein. Alle haben das gleich, da sie nur die eine Anwendung benutzen.

Max. Verbindungen des SQL Servers sind 32767 gesetzt.

Nun ist meine Überlegung, dass ich meine TADOConnection besser konfigurieren muss.

Was wären die besten Einstellungen in Bezug auf die oben geschilderte Situation.
Code:
TADOConnection - aktuelle Werte:
- CommandTimeout : 30
- ConnectOptions : coConnectUnspecified
- CursorLocation : clUseCLient
- IsolationLevel : ilCursorStability
- KeepConnection : True
- LoginPrompt    : False
- Mode           : cmReadWrite
- Provider       : SQLOLEDB.1
Was kann ich optimieren?

Hier mein Code, um die Verbindung aufzubauen.
Delphi-Quellcode:
function Tfrm_main.ConnectToSQLServer : Boolean;
begin
 Result := True;

 SQLConnection.Connected := False;
 if IsHostAlive(dbserver) = False then
 begin
   CreateLogFile('SQL Server ' + dbserver + ' is unreachable.',LogPath,0);
   Result := False;
   Exit;
 end;

 try
   // SQL Authentifizierung
   if dbinstance = 'then
     SQLConnection.ConnectionString := 'Provider=SQLOLEDB.1;Data Source='+dbserver+';Initial Catalog='+db+';User ID='+sqluser+';Password='+sqlpassword+';Persist Security Info=false'
   else
     SQLConnection.ConnectionString := 'Provider=SQLOLEDB.1;Data Source='+dbserver+'\'+dbinstance+';Initial Catalog='+db+';User ID='+sqluser+';Password='+sqlpassword+';Persist Security Info=false';
   SQLConnection.Connected := True;
 except
   CreateLogFile('Database Connection has been terminated with an unexpected error.',LogPath,0);
   Result := False;
   SQLConnection.Connected := False;
   Exit;
 end;

 if SQLConnection.Connected = False then
 begin
   CreateLogFile('Database Connection failed. Please contact your local Administrator',LogPath,0);
   Result := False;
   Exit;
 end;
end;
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 26. Nov 2015, 05:44
Moin,

wenn Username und Paßwort automatisch durch die Anwendung an den SQL-Server übermittelt werden – und das geschieht offensichtlich, soweit ich das deinem Connection-String entnehme –, kann es sich bei den betreffenden Log-Einträgen nicht um Benutzer dieser Anwendung handeln. Vielleicht versucht da jemand anders, sich anzumelden, und wählt für seine Versuche genau die Zeit aus, wo sowieso viel los ist. Kann man denn den Logfiles auch entnehmen, von wo diese fehlgeschlagenen Anmeldungsversuche ausgingen? Kommen sie immer vom selben Rechner? Hat da jemand eine Brute-Force-Anwendung am Laufen? Sind die falschen und daher abewiesenen Anmeldedaten immer dieselben?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 26. Nov 2015, 07:56
Ich seh das auch so wie Perlsau. Interessant sind allerdings Deine eigenen Logs, also die Deiner Anwendung.
Da verschluckst Du ja explizite Fehlermeldungen, obwohl Du brav logst. Wieso gibst Du die Fehler nicht aus im Logfile?
Also, bevor Du beginnst Phantome zu jagen, erstmal die Ursache genau feststellen.
Und was falsche Anmeldungen / PW angeht: Bei einer so hohen Nutzerzahl ist es nur eine Frage der Wahrscheinlichkeit, das jemand was falsch eingibt. Oh man, also die Wahrscheinlichkeit ist immer gleich, bei der Hohen Nutzerzahl kommen dann eben entsprechende Ereignisse häufig. Natürlich nur, wenn diese Anwendung mit fixem Login nicht die einzige ist.

Zu den Phantomen:
Ich kann mir gut vorstellen, dass da schlicht irgendwo ein Timeout beim Verbindungsaufbau greift, weil der arme Server etwas überlastet ist. Die Fehlermeldung wäre dann natürlich ziemlich schräg. Aber das würde mich nicht überraschen.

Dennoch, erstmal sauber loggen, dann weiterschauen.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#4

AW: TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 26. Nov 2015, 21:27
Moin,

Ich habe das Problem gefunden. Die fehlerhaften Logins sind tatsächlich eine andere Anwendung, die den gleichen SQL Benutzer verwenden. Habe ich erstmal umgestellt.
Des Weiteren hatten einige Anwender eine falsche Version und deshalb kam es zu den Login Fehlern.

Nun läuft alles sauber nach meiner Umstellung.

Danke für die Tipps.

Sven
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 26. Nov 2015, 22:18
Ich weiß nicht ob Sie es schon wussten, ...

ein MS-SQL kann den Benutzer hervorragend auch mit dem Windows-Konto anmelden. Und da wir hier eine Domain haben ist das sogar sehr simpel vom Management.

Nie wieder Probleme mit den Anmeldedaten und keine Passwörter die irgendwie gespeichert werden müssen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 27. Nov 2015, 00:33
Ja, ist eine schöne Sache, aber dann müsste man ja bei tausenden Benutzern noch eine Berechtigung vergeben. Das ist sicher zu anstrengend.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 27. Nov 2015, 07:48
Ja, ist eine schöne Sache, aber dann müsste man ja bei tausenden Benutzern noch eine Berechtigung vergeben. Das ist sicher zu anstrengend.
Um allen Benutzern der Domain einen Zugriff zu erlauben reicht ein Eintrag aus. Das sollte machbar sein.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 27. Nov 2015, 08:49
Wenn's denn alle sind.
Aber mein Beitrag war sowieso nicht ernst-hab die Ironietags vergessen- sondern der Versuch einer faulen Ausrede für den TE.
Ich finde es sehr fragwürdig, mit zentralem Login zu operieren, besonders wenn man durch so eine Trusted Login Möglichkeit viel besser dastünde.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#9

AW: TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 1. Dez 2015, 14:39
Danke für den Tipp mit dem Domän-Benutzer.

Es liegt nicht am Benutzer und Passwort. Das ist aber ein anderes Thema.

Danke für die Hilfe.
  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 01:04 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