Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Verbindung zu einem externen SQL / MySQL Server herstellen.. (https://www.delphipraxis.net/63753-verbindung-zu-einem-externen-sql-mysql-server-herstellen.html)

Mavarik 22. Feb 2006 14:30

Datenbank: SQL / MySQL • Zugriff über: Genau das ist die Frage

Verbindung zu einem externen SQL / MySQL Server herstellen..
 
Hallo Zusammen!

Auf den Delphi-Tagen habe ich mich mit einigen Leuten unterhalten. Diese haben mich motiviert, mich mit den SQL-Servern zu beschäftigen…

Nach einigen Test’s kann ich nur sagen:

:wiejetzt:

Ich habe zwar auf meinem Internet-Server MySQL und MS SQL Express problemlos installiert, jedoch kann ich keine Verbindung zum Server aufbauen!

Hat jemand ein walkthrough?

LG Frank :wall:

Bernhard Geyer 22. Feb 2006 14:33

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Es wird vermutlich der externe Zugriff defaultmäßig abgeschaltet sein um SQLBlaster und konsorten möglichst geringe Angriffsfläche zu bieten. Auch könnte es sein das Firewalls die benötigten Ports sperren.

RavenIV 22. Feb 2006 17:39

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
die meisten provider haben externen Zugriff abgeschaltet.
musst evtl. den umweg über PHP gehen.

gibt's schon etliche Diskussionen dazu hier in DP.

Mavarik 23. Feb 2006 09:52

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Nein, kann eigentlich nicht sein.

1. Mein Server (Win 2003 Web Edition)
2. SQL-Express mit alles TCP/IP Einstellungen freigegeben...
3. Firewall deaktiviert (hatte ich auch befürchtet)

----

Zur Info Autentifizierung steht auf Betriebssystem und nicht auf SQL-Server!

Ich habe das leise gefühl, dass ich irgentwie die lokalen Einstellungen bei mir nicht peile :coder2:

Hat jemand ein Testprogramm um das ganze mal auszuprobieren...

Nach dem Motto -> Connect, create DB, create Tabelle, schreibe in Tabelle!

LG Frank

Bernhard Geyer 23. Feb 2006 09:57

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Zitat:

Zitat von Mavarik
Zur Info Autentifizierung steht auf Betriebssystem und nicht auf SQL-Server!

Und wenn du nun extern über TCP/IP draufgehst wird dich der Server nicht autentifizieren können da dein Rechner keinerlei Rechte/Domainbeziehung zu dem Server hat.

Stell einfach mal auf SQl-Server-Autentifizierung um und leg einen entsprechenden Testuser an.

Mavarik 23. Feb 2006 10:58

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Bist Du sicher?

Es sollte doch möglich sein, sich als User auf dem Server einzuloggen und das auch über tcp/ip

Frank

Bernhard Geyer 23. Feb 2006 11:03

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Zitat:

Zitat von Mavarik
Bist Du sicher?

Ziemlich
Zitat:

Zitat von Mavarik
Es sollte doch möglich sein, sich als User auf dem Server einzuloggen und das auch über tcp/ip

Sicherlich ist das möglich, aber machst Du das? Meldest Du deinen Rechner an diesen Server an als Domain-Client an? Du wirst zwar mit irgendwelchen Remote-Tools dich anmelden, aber wenn du nun eine einfache ADO-Anwendung schreibst wird diese versuchen mit dem Konto anzumelden unter dem Du aktuell auf dem Lokalen Desktop angemeldet bist. Und dieses Konto kann der SQl-Server bei BS-Authentifizierung nicht authentifizieren.

Jelly 23. Feb 2006 12:06

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Zitat:

Zitat von Bernhard Geyer
Du wirst zwar mit irgendwelchen Remote-Tools dich anmelden, aber wenn du nun eine einfache ADO-Anwendung schreibst wird diese versuchen mit dem Konto anzumelden unter dem Du aktuell auf dem Lokalen Desktop angemeldet bist. Und dieses Konto kann der SQl-Server bei BS-Authentifizierung nicht authentifizieren.

Kann ich so nicht direkt bestätigen. Wenn Du auf dem Clientrechner den gleichen Benutzernamen und gleiches Passwort nutzt, dann klappt das auch ohne Domain.

Ich habe eher die Vermutung, das noch kein passender Login in der Datenbank angelegt ist.

Mavarik 23. Feb 2006 12:17

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
hmmm

Ich gebe doch in der SQLConnection Username und Passwort an!
Ich gehe eher davon aus, das der Host nicht funktioniert!

Hier habe ich die IP vom Server angegeben! Ist das richtig?

Alternativ dazu, habe ich es über ODBC versucht....

Frank :drunken:

PS.: Nochmal-> Hat jeman ein Testtool?

Jelly 23. Feb 2006 12:31

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Ich bin mir nicht ganz sicher, aber es kann sein dass Du mit dem SQL Server 2005 Express nicht übers Internet arbeiten kannst, fällt mir gerade ein. Dazu brauchts dann schon eher die Enterprise Version.

Aber Du verhedderst dich da grad selbst ein bischen:
Einerseits hast Du den SQL Server konfiguriert, die Clienst sollen sich über den Windowsaccount authentifizieren, und zum Anderen hast Du im ConnectionString irgendwelche Logins und Passwort stehen... Was denn nun?

Stell den SQL Server doch mal um, eigene Benutzerkennung zu wählen, und log dich mit dem Account 'sa' ein (kein Passwort)

Mavarik 24. Feb 2006 07:28

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Zitat:

Zitat von Jelly
Ich bin mir nicht ganz sicher, aber es kann sein dass Du mit dem SQL Server 2005 Express nicht übers Internet arbeiten kannst, fällt mir gerade ein. Dazu brauchts dann schon eher die Enterprise Version.

Wenn das so wäre, warum kann man dann den remode Zugriff konfigurieren?

Zitat:

Zitat von Jelly
Aber Du verhedderst dich da grad selbst ein bischen:
Einerseits hast Du den SQL Server konfiguriert, die Clienst sollen sich über den Windowsaccount authentifizieren, und zum Anderen hast Du im ConnectionString irgendwelche Logins und Passwort stehen... Was denn nun?

1. Wenn ich mich am Server anmelde und der SQL Server steht auf Windows login... Dann sollte der Login doch auf die User und Passwörter aus dem Windows reagieren.
2. Ich habe ja auch den MySQL Server installiert und auch der Reagiert nicht.


Zitat:

Zitat von Jelly
Stell den SQL Server doch mal um, eigene Benutzerkennung zu wählen, und log dich mit dem Account 'sa' ein (kein Passwort)

Gerne... Ich gehe davon aus. das ich lokal etwas falsch mache... Ich glaube mein Rechner versucht sich überhaupt nicht mit den Internet zu verbinden...bzw. Normalerweise würde ich davon ausgehen, dass sich wenigsten die Windows Firewall meldet und Fragt ob Sie raus darf... NIX...

Frank :coder:

Mavarik 24. Feb 2006 10:02

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Zitat:

Zitat von Jelly
Ich bin mir nicht ganz sicher, aber es kann sein dass Du mit dem SQL Server 2005 Express nicht übers Internet arbeiten kannst, fällt mir gerade ein. Dazu brauchts dann schon eher die Enterprise Version.

Aber Du verhedderst dich da grad selbst ein bischen:
Einerseits hast Du den SQL Server konfiguriert, die Clienst sollen sich über den Windowsaccount authentifizieren, und zum Anderen hast Du im ConnectionString irgendwelche Logins und Passwort stehen... Was denn nun?

Stell den SQL Server doch mal um, eigene Benutzerkennung zu wählen, und log dich mit dem Account 'sa' ein (kein Passwort)

Also ich habe jetzt versucht eine neue ODBC-Datenquelle anzulegen...
Habe sowohl den sa account versucht, als auch ein neu angelegten User!

Beim Verbinden erhalte ich folgende Fehlermeldung.

Fehler bei der Verbindung:
SQLState: '01000'
SQL Server-Fehler: 10061
[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen (Connect()).
Fehler bei der Verbindung:
SQLState: '08001'
SQL Server-Fehler: 17
[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]SQL Server existiert nicht oder Zugriff verweigert.

Ideen? :wiejetzt:

Mavarik 28. Feb 2006 09:03

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
:coder2: Hat den keiner eine Idee?

Bin echt ratlos....

Grüße Frank

Bernhard Geyer 28. Feb 2006 09:08

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Nochmal: Bist du sicher das keine Firewall dazwischen hängt. Es muß ja kein SW-Firewall auf dem gleichen Rechner sein. Oft sind auch noch zusätzliche Firewalls auf Routern oder ähnlichen Installierte welche die benötigten Ports sperren.

Mavarik 28. Feb 2006 09:09

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Ganz sicher! Nix steht im Wege...

Kannst Du etwas mit der Fehlermeldung anfangen?

Frank

Bernhard Geyer 28. Feb 2006 09:12

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Zitat:

Zitat von Mavarik
Kannst Du etwas mit der Fehlermeldung anfangen?

Ja. Es heißt einfach das auf den "normalen" Ports über die die Anfrage an den Server geht einfach keine Antwort kommt und für den Client es so ausschaut das kein Server auf diesen Ports wartet:

Ursache:
1, Falsche IP
2, Es gibt keinen Dienst/SQL-Server der auf den Port wartet
3, Firewall blockiert die Ports so das es nach Ursache 2 aussieht.

Jelly 28. Feb 2006 11:03

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Erklär uns doch nochmal ganz genau was für einen SQL Server Du verwendest, und auch genau welche Ausführung. In dem ganzen Gewusel ist schonmehrmals MySQL und MSSQL gefallen, dass ich nicht weiss, was für einen Server Du überhaupt nutzen tust.

Phoenix 28. Feb 2006 11:19

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Zitat:

Zitat von Jelly
In dem ganzen Gewusel ist schonmehrmals MySQL und MSSQL gefallen, dass ich nicht weiss, was für einen Server Du überhaupt nutzen tust.

Ich schon:
Auf dem Rechner ist installiert: Ein SQL Server 2005 Express und ein MySQL - Server.

Zu beiden Diensten kann ein externer Rechner keine Verbindung aufbauen, was mich zu dem Schluss führt, dass eher der Rechner ein Problem hat als die Datenbank.

Kurz zur Authentifizierung:
Steht der SQL-Server auf OS-Authentifizierung (also ohne eigene Benutzerverwaltung) authentifiziert er jede eingehende Verbindung gegen das laufende Betriebssystem. Aber den Benutzer der authentifiziert werden soll muss man logischerweise erstmal an den SQL-Server (inkl. Passwort) übermitteln, also hat er da schon vollkommen recht wenn er den gewünschten Systemuser im Connection-String einträgt. So hat das zu gehen.

Jetzt zur Eingrenzung:

Kannst Du lokal (also direkt vom Host aus) auf den/die SQL-Server zugreifen, oder klemmt es schon da?

Kannst Du den Server remote anpingen?
Wenn ja: Mach mal mit einem gängigen Tool (z.B. Ethereal) einen Portscan. Vielleicht ist der Port aus was für einem Grund nicht nach aussen hin offen.

Wenn nein: Steckt das Netzwerkkabel? Stimmen die IP's / Subnetze?

Für MySQL: Versuche als Tool mal MySQL Front. Das gibts in einer freien 30-tage Testversion. Damit kannst Du schauen ob Du lokal / remote auf den MySQL-Server kommst (und es dabei gleich sogut finden dass Du es Dir kaufst :) ).

Mavarik 28. Feb 2006 15:17

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Zitat:

Ich schon:
Auf dem Rechner ist installiert: Ein SQL Server 2005 Express und ein MySQL - Server.
Genau!

Zitat:

Zu beiden Diensten kann ein externer Rechner keine Verbindung aufbauen, was mich zu dem Schluss führt, dass eher der Rechner ein Problem hat als die Datenbank.
Hmm gewagter Schluss... Ich gehe eher davon aus, dass ich an irgend einer Stelle zu blöde bin... :wall:

Zitat:

Kurz zur Authentifizierung:
Steht der SQL-Server auf OS-Authentifizierung (also ohne eigene Benutzerverwaltung) authentifiziert er jede eingehende Verbindung gegen das laufende Betriebssystem. Aber den Benutzer der authentifiziert werden soll muss man logischerweise erstmal an den SQL-Server (inkl. Passwort) übermitteln, also hat er da schon vollkommen recht wenn er den gewünschten Systemuser im Connection-String einträgt. So hat das zu gehen.
Prima... Sehe ich auch so...

Zitat:

Jetzt zur Eingrenzung:

Kannst Du lokal (also direkt vom Host aus) auf den/die SQL-Server zugreifen, oder klemmt es schon da?

Für MySQL: Versuche als Tool mal MySQL Front. Das gibts in einer freien 30-tage Testversion. Damit kannst Du schauen ob Du lokal / remote auf den MySQL-Server kommst (und es dabei gleich sogut finden dass Du es Dir kaufst :) ).
Also local kann ich mit MySQLFront auf alles zugreifen...
Von meinem Rechner aus will er immer user@p23482734.dipt-dailin.net aufrufen...
kann ich auch nicht unterdrücken....

Zitat:

Kannst Du den Server remote anpingen?
Ja!

Zitat:

Wenn ja: Mach mal mit einem gängigen Tool (z.B. Ethereal) einen Portscan. Vielleicht ist der Port aus was für einem Grund nicht nach aussen hin offen.

Zitat:

Wenn nein: Steckt das Netzwerkkabel? Stimmen die IP's / Subnetze?
Ist ein Win2003 WebServer der sonst 100%ig läuft :angel:
Es ist keine Firewall aktiviert und keine Ports gesperrt...

Dachte ich... Ein Portscan der CT hat ergeben, dass mein Port für den MS-SQL Server gesperrt ist. (Wo auch immer)
Aber MYSQL ist offen... Problem siehe oben...

Wo kann der Port für den MS-SQL Server geschlossen sein? Clientz Protokoll TCP/IP ist aktive... Keine Ports in den
Netzwerkeinstellungen gesperrt... keine Firewall

mfg Frank

Phoenix 28. Feb 2006 15:31

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Ich gehe gerade fast davon aus, Du hast den Windows Server angemietet?
Frag mal Deinen Provider, ob die den Port blocken... Kann gut sein dass die wegen dem SQL Slammer erstmal alles dicht gemacht haben.

Was MySQL angeht.. könnte so ähnlich sein.. aber ein normaler connect sollte eigentlich gehen. Kannst Du per telnet auf den MySQL-Port connecten?

Mavarik 28. Feb 2006 15:36

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Zitat:

Zitat von Phoenix
Ich gehe gerade fast davon aus, Du hast den Windows Server angemietet?
Frag mal Deinen Provider, ob die den Port blocken... Kann gut sein dass die wegen dem SQL Slammer erstmal alles dicht gemacht haben.

Was MySQL angeht.. könnte so ähnlich sein.. aber ein normaler connect sollte eigentlich gehen. Kannst Du per telnet auf den MySQL-Port connecten?

ALSO 1. Gute Nachricht!!!! :bounce1:

MySQL Connection über die ODBC Treiber einen Alias eingerichtet und ich kann über eine TTabel (BDE) auf den MySQL Server zugreifen...

Über DBX und einer SQLConnection habe ich auch das Problem, dass er immer User@localhost vorgibt...

Naja und warum der Port noch gesperrt ist... Daran arbeite ich noch...

mfg Frank :coder:

Mavarik 2. Mär 2006 09:48

Re: Verbindung zu einem externen SQL / MySQL Server herstell
 
Hallo Zusammen...

Danke für die bisherigen Antworten... :)

Leider habe ich trotzdem noch keine wirkliche Lösung...

Daher möchte ich nochmal nachfragen, ob einer von Euch einen Vorschlag hat welche Komponenten
man am bestes einsezen soll (Am liebst Build-in Komponenten oder welche die im Source vorliegen ohne Lizenz)

Für:

1. Zugriff auf MySQL Server aus einer ISAPI.DLL oder ASP.NET
2. Zugriff auf eine MSSQL-Express Server aus einer ISAPI.DLL oder ASP.NET
3. Zugriff auf sowohl MySQL alsauch MSSQL aus einer Win32 Anwendung.

Danke Frank :coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 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