Hi,
mats hat folgendes geschrieben : |
2. Welcher Webservice wäre das, den ich zur Kommunikation mit dem MySQL-Server benutzen könnte? |
im idealfall ein selbst entwickelter. Dann hast du nicht nur die volle kontrolle über die Authentifizierung, sondern kannst auch exakt Schnittstellen Funktionen zur Verfügung stellen die du brauchst.
Angenommen du hast ein Programm das eine Kundenliste Anzeigen soll. Dann ruft diesen eine von dir in deinem Webservice Implementierte Funktion "GetKundenliste" auf. Die Funktion kann dann, da sie ja auf dem Server läuft ein "
SELECT * FROM Kunden ORDER BY LastName, FirstName" auf der für sie lokalen DB machen. So kann dir dann keiner per SQL-Injection irgendetwas unterjubeln. Zurückgeliefert wird dann die Liste, welche deine Clientanwendung dann wieder anzeigen kann.
Das ist relativ viel Aufwand, bringt aber mehr Sicherheit und abstrahiert dir den Datenbankzugriff. Dein Client muss also gar nicht wissen, wie die Datenbank aufgebaut ist und wenn es dir irgendwann mal in den Kopf kommt statt MySql auf eine andere Datenbank oder sogar ein ganz anderes Speichersystem (verstreut in der Cloud oder so) umzustellen, musst du nur den Webservice anpassen, der Client merkt davon gar nichts, solange die Schnitstelle nicht verändert wird.
Anders herum kannst du auch einen zweiten Client, vielleicht für Linux oder als HandyApp entwickeln, welche die Daten genauso vom Server erfragt, hier musst du dann die ganzen DB zugriffe nicht erneut einbauen.
Unter Sicherheitsaspekten ist dies meiner Meinung nach die beste Lösung, da du eine passende (keine Funktionen die du nicht brauchst) Schnittstelle hast die du selbst härten kannst.
Alternativ kannst du dir natürlich wirklich Externen zugriff (
MYSQL REMOTE ACCESS) auf deine MySql Datenbank geben, öffnest dadurch nur eine entsprechend größere Angriffsfläche.