Entwickler-Ecke
Datenbanken - ADO ConnectionString zum Internetprovider?
Eritacus - Sa 23.10.10 18:35
Titel: ADO ConnectionString zum Internetprovider?
Hallo zusammen,
seit Wochen schlage ich mich mit einem scheinbar einfachen Problem rum, bisher erfolglos. Auch die Delphi-Foren und Googlen haben nicht geholfen.
Seit Jahren läuft bei mir eine Datenbank, die nun in's Internet soll.
DB: Access (OHNE Kennwort)
Steuerung: ADODataset und ADOCommand im Formular
Im Intranet läuft alles bestens, auch wenn ich die DB auf einem NAS habe und dort anspreche.
Der entsprechende ConnectionString:
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\Rechnername\Users\Public\Datenbank\myDB.mdb
Aber ich kriege den ConnectionString zum Internet-Provider nicht hin.
Hier im Forum habe ich als allgemeines Beispiel gefunden:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\serverName\shareName\folder\myDatabase.mdb;User Id=admin;Password=;
Ich bin bei T-Online und habe dort eine Internetadresse, einen FTP-Servernamen, einen Benutzernamen und ein Paßwort (die DB hat KEINS).
Wenn ich das nehme, geht entweder garnichts oder er sagt mir, daß die Arbeitsgruppendatei fehlt. Ich weiß, was das ist
und wie es funktioniert, aber hier brauche ich die doch eigentlich nicht.
Wie muß der verfl.... ConnectionString aussehen, hat jemad eine Idee?
bummi - Sa 23.10.10 21:44
Ich kenne einen Zugriff auf z.B. Sqlserver übers Web, aber einen direkten Filezugriff.... Dein Provider wird die entsprechenden Ports hoffentlich dicht gemacht haben, selbst wenn diese offen wären Du bist ja in keiner Form am Server angemeldet....
Eritacus - So 24.10.10 20:33
Danke für die Antwort, auch wenn sie für mich schlecht ist.
Heißt denn das nun, daß es keine Möglichkeit gibt, eine
Datenbank (Access) bei einem I-Provider zu hinterlegen
und über eine ADO Connection anzusprechen?
Und wenn das so ist, was kann ich dann machen? Mir genügen
ein, zwei Stichworte als Denkanstoß. Danke schonmal.
bummi - So 24.10.10 20:41
-Einen Dienst aufsetzte der Anfragen entgegen nimmt und Beispielsweise Clientdatasets zuzückschickt.
-SOAP
-Eine andere Datenbank verwenden MSSQL, MYSLQ, Firebird... etc
-Eine ISAPI Webanwendung schreiben
und und und..
bummi - So 24.10.10 23:46
@Petros
mit dem Anlegen der Connectionstrings hat er IMHO keine Probleme, er wird einfach keinen Filezugriff auf einen Webserver bekommen.
Da fällt mir war ein, vielleicht per VPN.
Petros - So 24.10.10 23:56
ahh ok habs etwas missverstanden sry...
Eritacus - Di 26.10.10 09:01
Hallo,
erstmal vielen Dank, daß Ihr Euch so viel Mühe macht...
Es stimmt: Ich bekomme keinen Filezugriff beim Internet-Provider, bzw. genau dafür habe ich einen ADO Connection-String gesucht.
VPN habe ich probiert und das hat auch gut funktioniert, aber der Zugriff "von aussen" geht ja dann nur auf den Rechner, auf dem die andere Seite des VPN-Tunnels läuft. Den müßte ich dann als Server einsetzen. Kann man denn VPN auf einem Internet-Provider-Server installieren? Wohl eher nicht.
Ich denke, ich muß auf MySQL o.ä. umsteigen. Hab' ich schon mal installiert (XAMPP), nun geht aber meine
BDE nicht mehr, macht aber nix...
Jeder Denkanstoß hilft mir! Ich weiß nicht viel, aber ich kann alles Lernen!
Grüße
bummi - Di 26.10.10 10:10
Wenn Du einen Rootserver hast sollte das gehen, ist aber IMHO nicht sinnvoll.
Richtig Spass macht eine MS-SQLServer mit ADO, letztlich ist es aber "wurscht" welche RDBM Du einsetzt.
Eritacus - Di 26.10.10 19:02
OK, also neuer Fahrplan:
PC (Anwendung) <------ Zugriff über ADOConnectionstring o.ä. -------> Internet-Provider (MS SQL-Datenbank)
Hab' mich schon mal ein bißchen belesen - zu MS SQL gibt's ja wirklich eine Menge...Und SQL ist mir vertraut.
Geht diese Idee klar, oder ist da noch ein versteckter Denkfehler?
bummi - Di 26.10.10 22:08
Wenn Du den Server konfigurieren kannst und die Ports aufmachen kannst, geht das klar.
Tankard - Mi 27.10.10 03:33
ja und ne datenbankserver ueber das internet aufmachen da bekomme ich wirklich das kotzen. sicherheit sieht anders aus.
bummi - Mi 27.10.10 08:57
@Tankard
Da geb ich Dir Recht ... das nächste Loch in einem der Server wird schon gefunden werden....
Aber hier ging es IMHO um die Machbarkeit, ich bezweifle daß Eritacus auf eine 3-Tier Lösung umsteigen will.
Critter - Mi 27.10.10 16:21
Hallo,
ich habe das meistens so gemacht, dass ich indirekt per PHP-Script auf die Datenbank zugegriffen habe. Also mein Programm hat ein von mir geschriebenes PHP-Script aufgerufen, welches die Datenbankanfrage gemacht hat, und das Ergebnis zurückliefert.
Das hat meiner Meinung nach einige Vorteile:
- Du muss keinen Datenbankzugriff von außen auf die Datenbank erlauben, das PHP-Script läuft ja "lokal" auf dem Server und öffnest somit keine Potentiellen Sicherheitslöcher die Außerhalb deines Scriptes liegen.
- Du kannst die Möglichkeiten deines Scriptes nach deinem Gusto gestalten. Willst du z.B. immer nur Daten zwischen Start und Enddatum aus einer Tabelle abrufen, so übergibst du nur diese beiden Parameter, somit kann keiner deinem Script ein unerlaubtes Query unterschieben. Willst du hingegen beliebige Querys ausführen können, so nimmst du diese als Parameter entgegen und gehst entsprechend bewusst das damit zusammenhängende Sicherheitsrisiko ein, du kannst natürlich auch den Parameter so analysieren, dass z.B. nur lesende Querys möglich sind (wobei ich das eher [zusätzlich] über die Nutzerrechte regeln würde).
- Du kannst die Kommunikation und deren Sicherheit selbst beeinflussen, indem du z.B. das Script nur per HTTPS aufrufbar machst und/oder den Datenverkehr selbst geeignet verschlüsselst.
- Das ganze läuft auch auf günstigen (normal user) Web-Angeboten, solange du PHP und MySQL hast kriegst du es zum laufen. Du musst also keinen Server haben und auch keine besonderen Einflussmöglichkeiten auf dessen verhalten. Eine 5€/Monat Webpräsenz reicht.
//Edit: Oh ich sehe gerade, dass es um eine Access Datenbank auf dem Webspace geht, ich fürchte das wird nicht klappen. Denn du brauchst ja ein Datenbankmanagement System also die eigentliche Datenbank (also die Logik, das Programm, nicht die Nutzdaten) auf dem Server und das dürfte schwer zu finden sein. Wenn du sie nur auf dem Client hättest, dann müsste dieser die ja erst komplett herunterladen bevor er sie öffnet und Interpretieren kann, nachdem Änderungen gemacht wurden müssten diese wieder hochgeladen werden und was wäre dann, wenn in der Zwischenzeit ein anderer Client bereits seine Änderungen hochgeschickt hat?
Also, du brauchst eine Datenbank die auch auf dem Server läuft, bei den allermeisten Angeboten hast du eine MySql Datenbank dabei, die solltest du nutzen, wenn du es wie ober vorgeschlagen per Script machst, sollte es, zumindest was die Konfiguration des Servers angeht, auch nicht zu kompliziert werden. Und je nachdem welche Funktionen du im Script hinterlegst könnten sich diese ja auch zum Konvertieren deiner Access Tabellen in MySQL-Tabellen nutzen lassen ;).
critter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!