Verbindung zu einem externen mySQL Server

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von GerhardW.

    Verbindung zu einem externen mySQL Server

    Guten Morgen,

    also ich habe bisher immer nur im LAN mit mySQL Verbindungen gearbeitet. Jetzt stehe ich vor der Aufgabe, Daten bzw. eine Anmeldung an einen externen MySQL Server zu machen. Nun meine Frage, wie schaut es da mit der Verschlüsselung aus?
    Ich möchte nicht, dass irgendwelche Kennwörter im Klartext bei der Anmeldung an den externen Server gesendet werden. Wie ist das, wenn bereits eine Connection besteht? Ist der Datenaustausch verschlüsselt? Vielleicht macht das ja die MySQLData.dll bzw. die Routinen von MySQL selbst, was ich aber nicht glaube.

    Kann mir da jemand einmal kurz Infos geben. Ich werde jedenfalls auch nachlesen, aber wenn man einige Tips bekommt, ist das sehr hilfreich.

    Danke euch schon einmal.

    Gerhard
    Hallo

    Auch wenn dir die Antwort nicht gefallen wird. Eine Verbindung zu einer Datenbank macht man nicht über eine WAN Leitung. Ausgenommen ist hier das Intranet.
    Das ist der Grund warum Apps stets mit einem Webservice kommuniziert anstatt mit einer DB direkt.

    Du kannst eine SSL Verbindung erzwingen, musst deinen Server aber auch danach konfigurieren.
    siehe hier: stackoverflow.com/questions/52…between-c-sharp-and-mysql

    Aber empfohlen wird dies nicht wenn die Daten über das WAN gehen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo,

    das Probolem ist, dass es das alles schon gibt. Ich bin quasi NEU im Unternehmen und habe jetzt festgestellt, dass die MySQL Server auf angemieteten Servern außerhalb liegen und zu diesen dann über z.B. 3306 eine Verbindung aufgebaut wird. Jedoch keine speziell angegebene Verschlüsselung.Ich weiß jetzt adhoc nicht, wenn mit VB eine Connection zu einem dieser Server hergestellt wird, ob da ein automatische Verschlüsselng von den MySQL Libraries gemacht wird.

    Diesbezüglich bräuchte ich Infos, wenn jemand so etwas schon gemacht hat. Ich bin für jeden Hinweis dankbar. Muss mich ja gegen alle durchsetzen :)
    Aber genau die Info habe ich dir ja gegeben.
    Musst ja nur schaun wie alles eingestellt werden muss und wie die Verbindung aufgebaut werden muss das dem so ist. Das gleichst du aber wie es bei euch ist, ist die Einstellung so nicht gesetzt wird die Vebindung nicht verschlüsselt sein.
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Nofear hat dir die Antwort schon gegeben. Es kommt darauf an, wie die MySQL-Server konfiguriert sind und welche Bibliothek zum Verbinden du verwendest. Dir nützt keine sichere Verbindung wenn der MySQL-Server das nicht versteht.

    GerhardW schrieb:

    Diesbezüglich bräuchte ich Infos, wenn jemand so etwas schon gemacht hat.

    Keiner, der bei Verstand ist, sollte jemals sowas gemacht haben. Datenbank-Server gehören nicht "öffentlich" zugänglich ins Internet.

    GerhardW schrieb:

    Jetzt stehe ich vor der Aufgabe, Daten bzw. eine Anmeldung an einen externen MySQL Server zu machen.
    Erklär mal genauer, was bei dir "extern" bedeutet.
    Die meisten externen Datenbanken von Internet-Providern sind gar nicht von aussen erreichbar (aus gutem Grund).
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    Also für das Unternehmen, für welches ich arbeite, hat im Internet bei Providern Server (Windows) angemietet und dort MySQL Server installiert. Bei der vorgelagerten Firewall ist nur das Port z.B. 3306 offen über welche die Verbindung aufgebaut wird. Derzeit sind die Daten selbst vom Programm her verschlüsselt und auch in den Tabellen verschlüsselt gespeichert. Also, wenn jemand die Daten klaut, dann kann er nichts damit anfangen.

    Wir möchten dies aber umstellen und eine verschlüsselte Verbindung machen. Dann brauchen nicht wir im Programm die Daten ver-/entschlüsseln, was ja auch Zeit kostet...

    Ich habe es einmal mit einer WebAPI versucht, aber musste feststellen, dass dies zu langsam ist gegenüber einer direkten Verbindung. Das kommt daher, dass es sein kann, dass da schon einmal mehrere 10000 Datensätze abgeholt werden. Laut unseren Tests ist es mit einer direkten Verbindugn wesentlich schneller geladen als über eine WebAPI.

    Derzeit teste ich, dass die Verbindung verschlüsselt wird. Da habe ich auf der Webseite von MySQl gelesen, dass dies mit Zertifikaten geht. Grundsätzlich versucht MySQL immer eine verschlüsselte Verbindung.

    Also wenn jemand eine verschlüsselte Verbindung schon einmal gemacht hat, dann wäre ich für Hinweise dankbar, weil irgendwie funktioniert es bei mir nicht. Der MySQL Server meckert beim Laden der Zertifikate...
    Ich habe mir eine Anleitung dazu im Internet gesucht. Mit OpenSSL die Zertifikate erzeugt und die my.ini entsprechend angepasst. Also so wie in der Anleitung. Jedoch beim Starten des MySQL Server meckert er, dass er den Private Key aus einem Zertifikat nicht lesen kann. Ich finde aber diesbezüglich keine Antwort, wie ich das Probelm lösen kann.
    Ich habe die Anleitung x-mal gelesen, aber soweit alles richtig gemacht.

    Für die Verbindung zum Server gäbe es dann ein Client Zertifikat. Aber soweit komme ich gar nicht, weil der MySQL nicht startet...

    Die Fehlermeldung:
    [ERROR] SSL error: Unable to get private key from 'server-key.pem'
    [Warning] Failed to set up SSL because of the following SSL library error: Unable to get private key