none
Aus der App-Entwickler-Hotline: Zugriff auf den SQL-Server funktioniert nicht

Alle Antworten

  • Da ich vom Hintergrund her sehr sicherheits-affin bin, und um unnötige Sicherheitslücken zu vermeiden, möchte ich hierauf kurz eingehen/kommentieren.
    • Sicherstellen, dass der Zugriff über TCP/IP erlaubt ist. Dazu im "SQL Konfigurationsmanager" diese Option überall aktivieren [1]

    Es gibt pro Server da nur eine Einstellungs-option. Sobald es mehrere Instanzen auf dem Server gibt, wird der Administrator sicherlich von Fall zu Fall entscheiden, welche über Netzwerk erreichbar sein soll. Sicherlich sind das meist alle, aber meistens weiß man ja, mit welchem Server man kommunizieren möchte. :-)

    • Sicherstellen, dass der SQL Server Browser-Dienst gestartet ist. Dazu unter "Lokale Dienste" den Dienst starten [2]

    Das ist nur notwendig, wenn
    A) ein Nicht-Standardport (also != 1433) verwendet wird,
    und B) dieser in der Connection nicht direkt angegeben wird.

    Gerade bei internet-Facing Servern, sollte man hier sicher zweimal überlegen, welche Ports man zusätzlich (für den Browser) öffnet, oder ob es nicht SQL Server-Port XY allein tut.

    • Sicherstellen, dass der Benutzer, der das Programm ausführt eine Anmeldung im SQL Server besitzt. Dazu im SQL Management Studio unter "Sicherheit -> Anmeldung" eine neue Anmeldung mit dem Benutzernamen hinzufügen. Hier muss unter Benutzerzuordnung die Datenbank ausgewählt werden und im unteren Bereich die Berechtigungen "db_datareader, db_datawriter und public" gesetzt werden [4]

    Hier störe ich mich etwas an dem „muss“ und "db_datareader, db_datawriter und public"

    (Jeder User ist automatisch Mitglied der Public-Rolle. Die Mitgliedschaft ist nicht abwählbar oder setzbar. – Nur um keine Verwirrung zu schaffen.) db_datareader und db_datawriter Mitgliedschaften: gibt alle Tabellen und Sichten mit allen Spalten der aktuellen Datenbank zum Lesen und Schreiben frei.

    Möglicherweise ist das doch zu viel. Deshalb ist das nicht unbedingt als allgemeingültige „best practice“ empfehlenswert. Es sollte eben genau klar sein, was damit erreicht wird – und was man wirklich benötigt. Dann kann es eine Option sein.


    Andreas Wolter | Microsoft Certified Master SQL Server

    Blog: www.insidesql.org/blogs/andreaswolter
    Web: www.andreas-wolter.com | www.SarpedonQualityLab.com

    Freitag, 18. Oktober 2013 20:22