Datenbank extern abfragen

  • .NET 7–8
  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von BlueLagoonX.

    Datenbank extern abfragen

    Ein Hallo in die Runde. Ich möchte gern Daten extern abfragen. Also von anderen Orten, natürlich über Internet.
    Zur Verfügung habe ich ein QNAP (wo ich schon die ganze Zeit vergeblich versuche eine PHP Datenbank abzufragen). Geht irgendwie nicht !?
    Bin gerade dabei mich auch extern umzusehen wie bei Strato, die SQL Server anbieten. Hat damit jemand Erfahrung?
    Wie spreche ich diese dann an, und wie sicher sind solcher Server?

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Moinmoin

    Direkte Zugriffe auf Datenbanken über Internet sollte man immer (!) vermeiden.
    Schreib/lass dir eine Api erstellen, die auf dem Server läuft (php, asp.net ...). Diese empfängt die Anfragen und gibt dann aus der Datenbank die Ergebnisse zurück.
    Dabei sollte unbedingt darauf geachtet werden, dass Api-Aufrufe nur mit einem gültigen Key (selbstgeneriert und im Webserver hinterlegt, wird dann in der Api abgefragt) gültige Werte zurückgeben dürfen, sonst kann jeder alles abfragen.

    Und jetzt nochmal zum Anfang, was genau soll in der Datenbank stehen, was soll ausgegeben werden, sollen Daten hinzugefügt/geändert werden, oder sollen Zugriffe später nur lesend durch die Anwendung sein?
    Etwas mehr Info wäre nett, damit wir wissen, was genau du vor hast.
    "PHP Datenbank"
    Sowas gibt es nicht !
    Du kannst mit PHP eine Schittstelle (API) schreiben, PHP selbst hat aber keinerlei Datenbank-Eigenschaften.

    "SQL Server"
    Sowas gibt es genau genommen auch nicht, Strato bietet Server an, auf denen dann SQL-Datenbanken gehostet und verwaltet werden.
    Oder meinst du Microsoft SQL Server, ich denke eher nicht.

    Ich hoffe, es handelt sich nicht um kritische Daten, wenn doch, würde ich das jemanden machen lassen, der weiß, was er tut !
    Du könntest dir zum warm werden erstmal einen Webspace mit PHP und MySQL(gibt es auch kostenlos) besorgen und erstmal in die Materie eintauchen. Aber auch auf WAMP(Windows, Apache, MySQL, PHP) setzen bei dir lokal, XAMPP kann ich dir empfehlen, brauchste nur installieren, hast sofort Apache(Webserver), MySQL, PHP und Perl zur Verfügung. Aber wirklich erst wenn du das richtig beherscht, kannst/solltest du das produktiv einsetzen. Man kann super easy wegen unwissenheit Scheunentore für Angreifer weit offen stehen haben.

    PS.
    Mein Neffe dachte kürzlich auch das er bereit wäre sein Werk produktiv einzusetzen, mit seiner Erlaubnis(vorher ein Backup der Daten gemacht) hab ich ihm gezeigt, er ist es nicht. War ein BlackBox-Test, der in 5 Minuten durch war.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DTF“ ()

    BlueLagoonX schrieb:

    Moinmoin

    Direkte Zugriffe auf Datenbanken über Internet sollte man immer (!) vermeiden.
    Schreib/lass dir eine Api erstellen, die auf dem Server läuft (php, asp.net ...). Diese empfängt die Anfragen und gibt dann aus der Datenbank die Ergebnisse zurück.
    Dabei sollte unbedingt darauf geachtet werden, dass Api-Aufrufe nur mit einem gültigen Key (selbstgeneriert und im Webserver hinterlegt, wird dann in der Api abgefragt) gültige Werte zurückgeben dürfen, sonst kann jeder alles abfragen.

    Und jetzt nochmal zum Anfang, was genau soll in der Datenbank stehen, was soll ausgegeben werden, sollen Daten hinzugefügt/geändert werden, oder sollen Zugriffe später nur lesend durch die Anwendung sein?
    Etwas mehr Info wäre nett, damit wir wissen, was genau du vor hast.


    FormFollowsFunction schrieb:

    "PHP Datenbank"
    Sowas gibt es nicht !
    Du kannst mit PHP eine Schittstelle (API) schreiben, PHP selbst hat aber keinerlei Datenbank-Eigenschaften.

    "SQL Server"
    Sowas gibt es genau genommen auch nicht, Strato bietet Server an, auf denen dann SQL-Datenbanken gehostet und verwaltet werden.
    Oder meinst du Microsoft SQL Server, ich denke eher nicht.

    Ich hoffe, es handelt sich nicht um kritische Daten, wenn doch, würde ich das jemanden machen lassen, der weiß, was er tut !



    Nun natürlich sind es keine kritischen Daten. Es geht um Materialstücklisten, wie sie auch von Herstellern als ELDA- oder in DATA- NORM ausgegeben werden (in meinem Fall arbeite ich mit dementsprechenden EXCEL oder Access Daten vom Hersteller). Ich beötige jedoch nicht immer den gesamten Material Stamm, und natürlich mit eigenenen Zusatz Bemerkungen. Also absolut nichts Weltbewegendes. Aber der Zugriff sollte vielleicht dennoch nicht jedem offen stehen.

    Microsoft SQL-Server und Access Dateien (über Datenqellen hinzufügen) habe ich schon erfolgreich laufen, kann aber eben nur über Remot oder per VPN darauf zugreifen. Per VPN dauert natürlich bei großen Datenmengen der Transfer, also auch das Abgleichen recht lange.

    Zu meinem Vorhaben. Also ich möchte eine Material Datenbank aufbauen, mit z.B. dementsprechenden EAN Nummern. Ein QR Scanner soll die EAN Nummer einlesen und das Programm in der Datenbank die dazugehörigen Daten finden, so dass ich diese dann auch weiter verarbeiten kann. Das soll aber auch von Außen her geschehen. Also wenn ich nicht in meiner Werkstatt und mit den QNAP verbunden bin.

    Hab mich übrigens etwas verschrieben. Ich meine nicht eine PHP Datenbank. Auf meinem Server QNAP gibt es "phpMyAdmin" der mit einer MariaDB arbeitet. Diese versuche ich schon seit einiger Zeit im VisualStudio abzufragen, bekomme es aber über Datenquellen hinzufügen einfach nicht hin über seperatem Microsoft SQL Server angelegte Datenbanken geht es aber absolut einwandfrei. Unterm Strich ist es mir egal in welcher Datenbank die Infos stehen. Hauptsache ich kann auch außerhalb auf die Daten zugreifen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Micha aus DZ am Lober“ ()

    Sollen deine Kunden denn auch Daten in der Datenbank ändern/hinzufügen/löschen können, oder reicht für die ein lesender Zugriff?
    Wenn lesend auch reicht, wäre es sinnvoller, du schreibst dir einen Exporter, welcher die Dateien über Sftp auf deinen Webserver hochläd.
    Diese Daten lässt du dann von den Client-Anwendungen herunterladen und in die internen Datenbanken der Software importieren.
    Idealerweise erstellst du dir Klassen, welche als Xml/Json serialisierbar sind. Für den Export (dein PC) erstellst du dann eine Xml/Json Datei, lädst die auf den Server hoch. Für den Import (Client) wird die Datei heruntergeladen und deserialisiert und anschließend in eine intern beim Kunden liegende Datenbank deines Programms eingelesen.
    Wenn es keine Kundenbezogenen Daten sind, reine Materiallisten, dann kannst du dir den Weg über eine Api sparen und arbeitest nur mit Downloadlinks auf dem Server (meinetolledomain.de/materialliste.xml ...).