none
SQL_Server 2008 auf Remoteverbindung prüfen

    Frage

  • Hallo,

    wie kann ich SQL Server 2008 prüfen, ob dieser remoteverbindungen zulässt?

     

    Gruß

    Volker

     

     

    Donnerstag, 26. August 2010 22:11

Antworten

  • Hallo Volker,

    wenn der Support dort mithilft um so besser ;-)

    Ein Sicherheritsrisiko wohl kaum, da von Microsoft kann man schon anständige Arbeit erwarten.
    Allerdings für kleine Auftritte überdimensioniert und nicht unbedingt integriert -
    lies den Artikel von Thomas Bandt (ASP.NET MVP), der weiss mehr darüber als ich.

    Und wenn es ein Übungsprojekt ist, so solltest Du Dich mit dem Bereich Sicherheit
    in ASP.NET intensiv auseinandersetzen, das ist dort Pflicht.

    Gruß Elmar

     

     

    • Als Antwort markiert deppensido Samstag, 28. August 2010 11:19
    Samstag, 28. August 2010 07:10
    Beantworter

Alle Antworten

  • Hallo Volker,

    der einfachste Weg ist ein Blick in den SQL Server-Konfigurations-Manager

    Dort solltest Du überprüfen ob die Netzwerkprotokolle richtig konfiguriert sind.
    Bei SQL Server Express (gleich welcher Version) ist dort in der Standard-Einstellung
    nur der Zugriff via Shared Memory aktiviert. Damit können nur lokale Anwendungen
    darauf zugreifen.

    Für den Zugriff übers Netzwerk solltest Du TCP/IP aktivieren, soweit nicht bereits aktiv -
    andere Protokolle benötigt man heute im allgemeinen nicht mehr.
    Nach einer Änderung an den Netzwerkprotokollen muß die SQL Server Instanz neu gestartet werden.
    Mehr siehe: Server-Netzwerkkonfiguration

    Damit benannte Instanzen im Netzwerk direkt gefunden werden, solltest Du im Konfigurations-Manager
    prüfen, ob der SQL Server Browser-Dienst gestartet ist.

    Zudem mußt Du die Firewall einstellen, siehe
    Konfigurieren der Windows-Firewall für den SQL Server-Zugriff

    Um einem häufigen Missverständnis vorzubeugen:
    Die Einstellung "Remoteverbindungen mit diesem Server zulassen ", die man im SSMS
    findet, hat dafür keine Bedeutung, sie regelt den Zugriff zwischen SQL Server Instanzen.

    Gruß Elmar

    Freitag, 27. August 2010 07:27
    Beantworter
  • Hallo Elmar,

     

    ich habe jetzt nur das TCP/IP Protokoll aktiv und die Firewall eingerichtet.

    Aber ich bekomme den SQL Server Browser nicht gestartet. Bei Eigenschaften

    kann man "starten" gar nicht erst anwählen. Auch das Ausführen über die Befehlzeile:

    <drive>\<path>\sqlbrowser.exe -c (vom obigen Link) meldete: das System konnte die Datei
    nicht finden.

    Hilft es vielleicht, wenn ich den SQL-Server nochmal komplett neu installiere?

    Viele Grüße

    Volker
    Freitag, 27. August 2010 11:10
  • Hallo Volker,

    das er fehlt wäre ungewöhnlich.

    Wenn Du im SQL Server Konfigurations-Manager unter SQL Server Dienste guckst:
    Welchen Status hat der SQL Server Browser?
    Wenn er bereits gestartet ist, ist die Option "Starten" im Kontextmenü ausgegraut.
    Im Normalfall sollte man den Startmodus des Dienstes auf automatisch stellen,
    dann steht er mit dem Systemstart zur Verfügung.

    Der exakte Pfad hängt von der Version ab (drive/path sind nur Platzhalter).
    Den genauen Pfad kann Du unter Eigenschaften->Dienst->Binärpfad ermitteln.
    Schau mal im Explorer nach, ob er dort wirklich fehlt.

    Wenn ja: Zunächst eine Reparatur über die Systemsteuerung veranlassen.

    Gruß Elmar

    Freitag, 27. August 2010 12:37
    Beantworter
  • Hallo Elmar,

    den SQL Server Browser hab ich jetzt doch zum starten bekommen.

    Aber ich bekome immernoch folgende Fehlermeldung:

    Serverfehler in der Anwendung /.

    Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: SQL Network Interfaces, error: 26 - Fehler beim Bestimmen des angegebenen Servers/der angegebenen Instanz)

    kann es hierfür noch andere Gründe geben vielleicht, denn der SQL Server ist ja nun richtig eingestellt und der WebHoster untersützt diesen, nach dessen Angaben, auch. Lokal funktioniert es jedenfalls.

     

    Griß Volker

     

    Freitag, 27. August 2010 13:57
  • Hallo Volker,

    wie lautet Deine Verbindungszeichenfolge?

    Bei einer Datenbank bei einem Webhoster solltest Du dessen Anleitung
    für den Server-/Instanznamen beachten und Deine Verbindungszeichenfolge
    beim Übetragen der Anwendung entsprechend anpassen.
    Ein externer Zugriff auf die Datenbank eines Webhosters ist häufig
    aus Sicherheitsgründen nicht möglich.

    Gruß Elmar

    Freitag, 27. August 2010 14:14
    Beantworter
  • Hallo Elmar,

    ich habe vom Support folgende Antwort erhalten:

    Bitte nutzen Sie für die Datenbankverbindung in Ihrem Connectionstring die Ihnen übermittelten Zugangsdaten zu unserem dedizierten MSSQL 2008 Server, da auf dem System kein MSSQL Express eingesetzt wird.

    Dazu hatte ich in einer früheren Mail auch Datenbankname, Benutername und ein Passwort erhalten.

    (Somit ist auch klar, warum ich die Fehlermeldung bekomme)

    Ich weiß aber nicht genau, wie ich diesen Connectionstring anpassen muss. Momentan sieht dieser so aus:

    <connectionStrings>
        <add name="ApplicationServices"
             connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
             providerName="System.Data.SqlClient" />
      </connectionStrings>

    Heißt das dann auch, dass ich eine eigene Datenbank gar nicht verwenden kann und somit bereits eingetragene Daten neu eingetragen werden müssen?

    Gruß

    Volker

    Freitag, 27. August 2010 17:31
  • Hallo Volker,

    bei einem SQL Server Vollversion gibt es keine Benutzer-Instanzen
    und ich gehe nach der Beschreibung davon aus, dass Du keine Berechtigung hast,
    eine Datenbank anzufügen (oder zu erstellen) und Standard-Sicherheit verwendet wird.

    Die Verbindungszeichenfolge für connectionString wäre

    Data Source=SERVERNAME;Initial Catalog=DATENBANK;Persist Security Info=false;User ID=BENUTZER;Password=PASSWORT; 
    
    
    wobei Du Deine Daten bei den Platzhaltern (in Großbuchstaben)  einsetzen müsstest.

    Damit solltest Du zunächst einmal Verbindung erhalten.

    Was die ASPNETDB Datenbank die Du hast angehst:
    Ist es die Erstellen der Datenbank für die Anwendungsdienste für SQL Server
    (dazu könnte eher jemand im ASP.NET Forum was zu sagen, denn das ist nicht meine Domäne)

    oder hast Du sie um weitere Tabellen erweitert?

    Für letztere kannst Du bei Dir lokal über das Management Studio ein Skript erstellen lassen.
    Und je nachdem ob Du dort Programme ausführen kannst, sie entweder durch sqlcmd
    oder durch Dein Programm erzeugen lassen.

    Gruß Elmar

     

    Freitag, 27. August 2010 18:01
    Beantworter
  • Hallo Elmar,

     

    nachdem ich den Connectionstring angepasst habe bekomme ich nun

    ziemlich rasch diesen Fehler:

    Die gespeicherte Prozedur 'dbo.aspnet_CheckSchemaVersion' wurde nicht gefunden.

    Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde. 

    Ausnahmedetails: System.Data.SqlClient.SqlException: Die gespeicherte Prozedur 'dbo.aspnet_CheckSchemaVersion' wurde nicht gefunden.

    Mir würde es zunächst reichen, wenn man überhaupt eine Verbindung aufbauen kann, da sich in der DB bislang nur Testuser befinden

    und ich auch sonst nichts weiter angelegt hatte.

    Gruß

    Volker

     


    Freitag, 27. August 2010 19:06
  • Hallo Volker,

    die gute Nachricht: Du hast bereits eine Verbindung, sonst käme die Meldung so nicht.

    Die (evtl.) schlechte: Du verwendest offensichtlich die ASP.NET Dienste
    die durch das Programm im vorhin geposteten Link eingerichtet werden.

    Das solltest Du aber eher im ASP.NET Forum klären.
    Mir ist zwar bekannt, das auch ohne geht, z. B.:
    http://blog.thomasbandt.de/39/1409/de/blog/der-eigene-custom-membershipprovider-in-10-minuten.html
    Stefan oder jemand anderes kann Dir mehr dazu sagen als ich.

    Gruß Elmar
    Freitag, 27. August 2010 19:36
    Beantworter
  • Hallo Elmar,

    Laut Support wird dieser die Datenbank auf dem Server einbinden.

    So sollte der Zugriff funktionieren.

    Über einen eigenen custom-membershipprovider hatte ich zwar schon

    nachgedacht. Aber da die Standarddatenbank ja eigentlich gut funktioniert,

    versteh ich nicht so ganz, warum ich diesen ändern sollte.

    Gibt es da vielleicht Sicherheitsrisiken oder ähnliches?

     

    Viele Grüße

    Volker

     

    Freitag, 27. August 2010 22:10
  • Hallo Volker,

    wenn der Support dort mithilft um so besser ;-)

    Ein Sicherheritsrisiko wohl kaum, da von Microsoft kann man schon anständige Arbeit erwarten.
    Allerdings für kleine Auftritte überdimensioniert und nicht unbedingt integriert -
    lies den Artikel von Thomas Bandt (ASP.NET MVP), der weiss mehr darüber als ich.

    Und wenn es ein Übungsprojekt ist, so solltest Du Dich mit dem Bereich Sicherheit
    in ASP.NET intensiv auseinandersetzen, das ist dort Pflicht.

    Gruß Elmar

     

     

    • Als Antwort markiert deppensido Samstag, 28. August 2010 11:19
    Samstag, 28. August 2010 07:10
    Beantworter
  • Hallo Elmar, 

     

    "Allerdings für kleine Auftritte überdimensioniert und nicht unbedingt integriert "

    Ja, das leuchtet ein. Ich werde mich dann doch besser mal 

    mit sowas beschäftigen. Ansonsten wären soweit alle Fragen geklärt.

    Nochmals danke für die Hilfe!

     

    Viele Grüße

    Volker

     

    Samstag, 28. August 2010 11:19