Benutzer mit den meisten Antworten
Windows 8 App Datenzugriff auf SQL Server

Frage
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:
- 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.
- 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:
- Einen Webservice zwischen App und SQL Server schalten (z.B. REST/ASP.NET MVC Web Api)
- SQLite für Windows 8 (lokal zur App-Laufzeit ausgeführte SQLite-Instanz) samt Daten in App integrieren
- 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- Als Antwort vorgeschlagen Olaf HelperMVP Freitag, 10. Mai 2013 07:44
- Als Antwort markiert A. Friedrichs Dienstag, 14. Mai 2013 12:24
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:
- 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.
- 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:
- Einen Webservice zwischen App und SQL Server schalten (z.B. REST/ASP.NET MVC Web Api)
- SQLite für Windows 8 (lokal zur App-Laufzeit ausgeführte SQLite-Instanz) samt Daten in App integrieren
- 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- Als Antwort vorgeschlagen Olaf HelperMVP Freitag, 10. Mai 2013 07:44
- Als Antwort markiert A. Friedrichs Dienstag, 14. Mai 2013 12:24