# JDBC via Netzwerk



## Kiloui (3. Nov 2012)

Hey,
was Datenbankanbindungen angeht habe ich bisher nur im Bereich Webanwendungen Erfahrung. Und hier habe ich stets eine Server-Komponente geschrieben welche eine Verbindung zur DB herstellt und Daten aus der Datenbank ausliest um die anschließend für einen Client zur Verfügung zu stellen....

Wie ist das wenn eine Java-Desktopanwendung geschrieben wird und man mit der Anwendung über ein Netzwerk auf eine Datenbank die auf einem Server läuft zugreifen möchte ? Benötigt man in diesem Fall auch eine serverseitige Komponente ? Oder erlaubt es JDBC direkt über das Netzwerk eine Verbindung zur DB herszustellen und Daten abzufragen ?


----------



## Marcinek (3. Nov 2012)

JDBC kann natürlich auch über Netzwerk an eine Datenbank abfragen schicken.


----------



## TheDarkRose (3. Nov 2012)

Kann, sollte man aber nicht. 

Gesendet von meinem Nexus 7 mit Tapatalk 2


----------



## Marcinek (3. Nov 2012)

TheDarkRose hat gesagt.:


> Kann, sollte man aber nicht.



Würde ich jetzt pauschal nicht zustimmen (ich weiß das wird eine Debatte auslösen) aber Datenbanken beinhalten Wege und Mittel um Zugriffe auf die Datenbank einzuschränken. Genau so, wie es ein Applikationsserver machen würde.

Aufpassen muss man bei schreibenden Zugriffen um keine inkonsistenten Daten zu erhalten. Dies würde sich aber mit Triggern und SP auch hinbekommen lassen ^^ - Natürlich nicht so konfortabel.

Zumindest für lesende Zugriffe ist das eher unbedenlich.

In MS CRM2011 ist das so, dass Datenbankzugriffe (zumindest lesend) supported sind. Dies wird bei den Usern z.B. für das Reporting genutzt. Die ausgeführten Reports werden mit den User-Credentials, der den Report ausführt direkt auf der Datenbank gemacht.

Auch das Erstellen der Reports kann dann dem User überlassen werden ;D


----------



## turtle (3. Nov 2012)

> Kann, sollte man aber nicht.



Das finde ich echt eine gewagte Aussage

Die meisten DB-Anwendungen, (alle?), laufen auf einem Rechner auf dem NICHT gleichzeitig die DB läuft. DB-Server treten vielmehr im Rudel, sprich Cluster, auf, so dass die DB mehr Funktionen bieten kann wie beispielsweise Ausfallsicherheit.

Der Zugriff auf eine DB über das Internet muss trotzdem in der Tat wohl überlegt sein. Hier kommen Angriffsszenarien hinzu, die einen sicheren Betrieb erschweren. 

Daher werden DB-Zugriffe aus dem Internet direkt eher vermieden. DB also sind das Rückgrat der meisten Applikationen. Ein Web-Frontend/Service leitet Aufrufe an die DB über "wohldefinierte" Schnittstellen weiter. Damit bleibt die DB intern verfügbar und über einen Webservice, oder ähnliches, kann trotzdem auf die DB lesend/schreibend zugegriffen werden.


----------

