none
Windows 8 App Datenzugriff auf SQL Server RRS feed

  • Frage

  • Hallo,

    wie kann ich mit einer Windows 8 App auf einen SQL Server zugreifen. In der WinRT habe ich keine Möglichkeiten der sqlconnection gefunden.

    Für eine schnelle Info wäre ich sehr dankbar.

    Vielen Dank vorab!

    Andreas

    Donnerstag, 9. Mai 2013 15:09

Antworten

  • Hallo Andreas,

    zunächst die schlechte Nachricht: Es ist leider nicht möglich, direkt aus Windows Store Apps auf einen SQL Server zuzugreifen. Die SqlConnection steht unter WinRT nicht zur Verfügung. Und das aus guten Gründen:

    1. Wenn du eine Verteilung der App planst (über den Windows Store oder firmenintern), müsstest du auch den SQL Server nach außen hin freigeben. Das ist sicherheitstechnisch bedenklich - vor allem, wenn dabei der Standard-Port 1433 benutzt wird, auf den sehr gerne Bruteforce-Attacken gefahren werden.
    2. Weiterhin gibst du bei einer Veröffentlichung der App auch die Credentials für den SQL Server aus deiner Hand. Ein potenzieller Angreifer könnte so beliebige Befehle auf die Datenbank abfeuern. Verfügt der Datenbankbenutzer dann noch über mehr als nur Leserechte, wird es besonders gefährlich.

    Dir stehen jedoch drei Alternativen zur Verfügung:

    1. Einen Webservice zwischen App und SQL Server schalten (z.B. REST/ASP.NET MVC Web Api)
    2. SQLite für Windows 8 (lokal zur App-Laufzeit ausgeführte SQLite-Instanz) samt Daten in App integrieren
    3. Daten im lokalen Anwendungsspeicher ablegen

    Diese Alternativen erfordern zwar einen höheren Aufwand, sind aber deutlich sauberer. Ich hoffe, dass dir eine der drei Alternativen vielleicht etwas entgegenkommt.

    --
    Beste Grüße,
    Christian

    Donnerstag, 9. Mai 2013 19:00

Alle Antworten

  • Hallo Andreas,

    zunächst die schlechte Nachricht: Es ist leider nicht möglich, direkt aus Windows Store Apps auf einen SQL Server zuzugreifen. Die SqlConnection steht unter WinRT nicht zur Verfügung. Und das aus guten Gründen:

    1. Wenn du eine Verteilung der App planst (über den Windows Store oder firmenintern), müsstest du auch den SQL Server nach außen hin freigeben. Das ist sicherheitstechnisch bedenklich - vor allem, wenn dabei der Standard-Port 1433 benutzt wird, auf den sehr gerne Bruteforce-Attacken gefahren werden.
    2. Weiterhin gibst du bei einer Veröffentlichung der App auch die Credentials für den SQL Server aus deiner Hand. Ein potenzieller Angreifer könnte so beliebige Befehle auf die Datenbank abfeuern. Verfügt der Datenbankbenutzer dann noch über mehr als nur Leserechte, wird es besonders gefährlich.

    Dir stehen jedoch drei Alternativen zur Verfügung:

    1. Einen Webservice zwischen App und SQL Server schalten (z.B. REST/ASP.NET MVC Web Api)
    2. SQLite für Windows 8 (lokal zur App-Laufzeit ausgeführte SQLite-Instanz) samt Daten in App integrieren
    3. Daten im lokalen Anwendungsspeicher ablegen

    Diese Alternativen erfordern zwar einen höheren Aufwand, sind aber deutlich sauberer. Ich hoffe, dass dir eine der drei Alternativen vielleicht etwas entgegenkommt.

    --
    Beste Grüße,
    Christian

    Donnerstag, 9. Mai 2013 19:00
  • Hallo Christian,

    vorab vielen Dank für die schnelle Hilfe. Ich hoffe ich komme damit weiter.

    LG

    Andreas

    Donnerstag, 9. Mai 2013 19:07
  • Hallo Andreas,

    Wenn Dir die Antwort von Christian geholfen hat, dann bitte markiere diese als Antwort,

    Danke und Gruss,

    Ionut

    Montag, 13. Mai 2013 14:23
    Moderator