# auf online DB zugreifen



## DerNeue (27. Aug 2010)

hallo liebes forum, ich habe folgende frage:

ist es irgendwie möglich, von einem lokal laufenden java programm auf eine datenbank zuzugreifen, die auf einem webserver liegt?


----------



## XHelp (27. Aug 2010)

ja


----------



## DerNeue (27. Aug 2010)

und wie genau lässt sich das realisieren?


----------



## XHelp (27. Aug 2010)

Mit jdbc z.B.


----------



## DerNeue (27. Aug 2010)

nun ja aber wie genau geht das?

also so wird mein conn object erzeugt:

jdbcdbcriver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:/Users/Beispiel/Desktop/DBFile.mdb

wie muss ich das jetzt ändern, wenn die DB auf einem webserver liegt??


----------



## XHelp (27. Aug 2010)

Naja, es ist nur eine Access-Datei, von daher müsstest du die erst runterladen, lokal ändern, und wieder auf den Server hochladen. Oder wie hast du es dir vorgestellt? Du kannst ja nicht ohne weiteres "einfach mal" eine Datei auf dem Webserver ändern.


----------



## DerNeue (27. Aug 2010)

hmm verthele

und wie läd man eine access datei runter und wieder hoch?


----------



## XHelp (27. Aug 2010)

Also um die hochzuladen kannst du ja FTP verwenden, das Programm braucht dann aber die Zugangsdaten.
Und runderladen kannst du es wie jede andere Datei auch (stichwort "java download file").
Aber wenn z.B. 2 Menschen gleichzeitig mit der Datenbank arbeiten wirst du ein Problem kriegen, da ja eine der Änderungen verworfen wird.
Vllt ist es sinnvoller eher auf MySQL umzusteigen? Dann musst du dich auch nicht mit solchen Sachen rumprügeln.


----------



## DerNeue (27. Aug 2010)

ok das macht sinn umzusteigen

also wenn ich ne online mysql datenbank hab, dann kann ich auch dierekt vom lokalen programm auf diese zugreifen?


----------



## XHelp (27. Aug 2010)

Du wirst es nicht glauben... 
Using JDBC with MySQL, Getting Started &mdash; Developer.com


----------



## DerNeue2 (28. Aug 2010)

und was braucht man um von einem lokalen programm auf eine datenbank, die auf einem webserver liegt zuzugreifen?
muss man eine schicht dazwischen bauen oder wie???


----------



## XHelp (28. Aug 2010)

Du sprichst eben nicht 
	
	
	
	





```
localhost
```
, sondern deinen online-mysql server an.


----------



## DerNeue2 (28. Aug 2010)

und birgt das keine sicherheitsrisiken?


----------



## XHelp (28. Aug 2010)

Doch, tut es. Aber das war ja auch nicht die Frage.
Wenn es draum geht, dein Programm zu verteilen, dann musst du doch noch irgendeine Ding zwischen java-anwendung und MySQL Server dazwischenklemmen


----------



## DerNeue2 (28. Aug 2010)

und was muss man dazwischenklemmen?


----------



## XHelp (28. Aug 2010)

Kannst ja was mit php machen


----------



## Gast2 (29. Aug 2010)

Willst du eine Desktopanwendung machen? 
Normal hat der Application-Server eine Verbidnung zur DB und dein lokale Desktopanwendung kann über RMI oder andere remote techniken darauf zugreifen
Spring Remote (RMI + HTTP)


----------



## frapo (30. Aug 2010)

XHelp hat gesagt.:


> Du kannst ja nicht ohne weiteres "einfach mal" eine Datei auf dem Webserver ändern.



Warum denn nicht? Es muss doch beispielsweise nur eine Freigabe(z.B. per Samba) eingerichtet sein. Oder man macht das per ssh. Da gibt es sicherlich noch einige Möglichkeiten mehr.

Jeder der Webseiten im Netz hat, kann prinzipiell Dateien auf einem Webserver ändern. Ob dies vernünftig ist, ist eine andere Frage.


----------



## XHelp (30. Aug 2010)

frapo hat gesagt.:


> Warum denn nicht? Es muss doch beispielsweise nur eine Freigabe(z.B. per Samba) eingerichtet sein. Oder man macht das per ssh. Da gibt es sicherlich noch einige Möglichkeiten mehr.


Du kannst ja nicht völlig aus dem Zusammenhang gerissen die Aussage nehmen und einfach mal das Gegenteil behaupten  Samba und ssh sind aber schon ziemlich aus der Ferne gegriffen, Stichwort "Windows". FTP ist in dem Zusammenhang schon eher geeignet, aber für diesen Zweck wird es nun mal nicht klappen. Abgesehen davon, dass eine Access-Datei beim öffnen gelockt wird, so dass nur einer damit arbeiten kann.



frapo hat gesagt.:


> Jeder der Webseiten im Netz hat, kann prinzipiell Dateien auf einem Webserver ändern.



Irgendwie fehlt mir der Sinn dieser aussage. Oder sollte es eher folgendes sein:
"Jeder, kann prinzipiell Dateien auf einem Webserver ändern, *zu welchem er a) Zugriff hat, b) Zugangsdatei besitzt und c) weißt, wie er das anstellt*"?


----------



## frapo (30. Aug 2010)

XHelp hat gesagt.:


> Du kannst ja nicht völlig aus dem Zusammenhang gerissen die Aussage nehmen und einfach mal das Gegenteil behaupten



Nun gut.. dann nehme ich die ganze Aussage nochmal zur Grundlage (auch wenn sich dadurch nichts am Sachverhalt ändert):



> Naja, es ist nur eine Access-Datei, von daher müsstest du die erst runterladen, lokal ändern, und wieder auf den Server hochladen. Oder wie hast du es dir vorgestellt? Du kannst ja nicht ohne weiteres "einfach mal" eine Datei auf dem Webserver ändern.



Man muss die Datei nicht herunterladen, bearbeiten und dann wieder hochladen. Natürlich kann man das online machen, sofern man Zugriff auf den Space hat.



> Samba und ssh sind aber schon ziemlich aus der Ferne gegriffen, Stichwort "Windows". FTP ist in dem Zusammenhang schon eher geeignet, aber für diesen Zweck wird es nun mal nicht klappen. Abgesehen davon, dass eine Access-Datei beim öffnen gelockt wird, so dass nur einer damit arbeiten kann.



Stichwort Windows? Bisher wurde nicht erwähnt das der Webserver ein Win-Server ist, selbst das wäre kein Hindernis. Da gehe ich natürlich von der gängigen Variante aus: Linux. Da kann man dann wunderbar drauf arbeiten.. soweit man den Zugriff hat - logisch.



> Irgendwie fehlt mir der Sinn dieser aussage. Oder sollte es eher folgendes sein:
> "Jeder, kann prinzipiell Dateien auf einem Webserver ändern, *zu welchem er a) Zugriff hat, b) Zugangsdatei besitzt und c) weißt, wie er das anstellt*"?



Lies vielleicht einfach nochmal in Ruhe was ich geschrieben habe, ich zitiere mich gerne nochmal: 


> Jeder der Webseiten im Netz hat, kann prinzipiell Dateien auf einem Webserver ändern. Ob dies vernünftig ist, ist eine andere Frage.



Bisher wurde auch nicht gesagt, das mehrer User auf die DB zugreifen sollen. Für mich hörte es sich bislang nach einer ganz kleinen Lösung an und nach einer Frage der prinzipiellen Machbarkeit.

Ist nun aber auch alles ein wenig Offtopic. Ich wollte halt nur deutlich machen, das es natürlich prinzipiell möglich ist auf eine Access-DB im Netz zuzugreifen, ohne diese erst down- und dann wieder uploaden zu müssen.   

Damit ist der Drops für mich hier gelutscht.

Grüße
frapo


----------



## XHelp (30. Aug 2010)

Ja... entweder hast du einen Server, zu dem du Root-Rechte hast und die Datenbank muss online sein, aber ledeglich von einem einzigen Benutzer benutzbar sein und du willst noch jeden Rechner einrichten, wo du dein Programm verwenden willst... oder es geht nicht -> Ockhams Rasiermesser ? Wikipedia


----------



## frapo (30. Aug 2010)

XHelp hat gesagt.:


> Ja... entweder hast du einen Server, zu dem du Root-Rechte hast und die Datenbank muss online sein, aber ledeglich von einem einzigen Benutzer benutzbar sein und du willst noch jeden Rechner einrichten, wo du dein Programm verwenden willst... oder es geht nicht -> Ockhams Rasiermesser ? Wikipedia



Wir sind uns ja übrigens einig, dass Access garantiert keine optimale Lösung ist.. besser gleich eine echte DB. Da muss sich der TO aber den Kopf zerbrechen .

Grüße
frapo


----------



## tuttle64 (30. Aug 2010)

DerNeue hat gesagt.:


> ok das macht sinn umzusteigen




was nun, ist die db auf mysql migriert worden?




DerNeue hat gesagt.:


> also wenn ich ne online mysql datenbank hab, dann kann ich auch dierekt vom lokalen programm auf diese zugreifen?



prinzipiell schon.


----------

