none
SQL Express 2005: Management Studio-Zugriff funktioniert, MS-Access nicht RRS feed

  • Frage

  • Hallo zusammen,

    ich habe hier eine DB auf einem SQL Express 2005 unter Windows Server 2003. Der Zugriff von extern auf diese DB per Management Studio Express funktioniert reibungslos, versuche ich es mit Access (2003), kommt immer:

    "Microsoft-Datenverknüpfungsfehler
    [DBNETLIB][ConnectionOpen (Connect()).]SQL Server existiert nicht oder Zugriff verweigert."

    Ich kenne den zugehörigen MS-Artikel , der Servername ist aber definitiv richtig, denn ich benutze die gleichen Anmeldeinformationen (Servername = server.example.org, Benutzer = sa), nur, daß ich bei Access beim Servernamen noch \SQLEXPRESS anfüge. Remoteverbindung ist aktiviert, funktioniert ja wie gesagt auch per Management Studio.

    SQLBrowser läuft, Firewall testweise sogar abgeschaltet, immer das gleiche.

     

    Wieso geht es mit Management Studio Express aber nicht mit Access? Kennt jemand das Problem?

    Vielen Dank

    Thilo

    Sonntag, 10. Oktober 2010 23:53

Antworten

  • Hallo Thilo,

    das Problem dürfte der DNS-Name sein, den Du verwendest (server.example.org ).
    Verwende für Servername die Syntax Rechnername\Instanzname (wobei Instanzname bei Dir SQLEXPRESS wäre)
    was die auch angezeigt wird wenn Du Dir im SSMS ausgeben lässt:

    SELECT SERVERPROPERTY('SERVERNAME')
    

    Gruß Elmar

    Montag, 11. Oktober 2010 07:08

Alle Antworten

  • Hallo Thilo,

    das Problem dürfte der DNS-Name sein, den Du verwendest (server.example.org ).
    Verwende für Servername die Syntax Rechnername\Instanzname (wobei Instanzname bei Dir SQLEXPRESS wäre)
    was die auch angezeigt wird wenn Du Dir im SSMS ausgeben lässt:

    SELECT SERVERPROPERTY('SERVERNAME')
    

    Gruß Elmar

    Montag, 11. Oktober 2010 07:08
  • Hallo Elmar,

     

    vielen Dank, das war es.

    ABER... wieso ging es beim alten Server? Hintergrund: die Datenbank ist  auf einen anderen Server umgezogen und nun unter neuem Hostnamen erreichbar. Vorher ging es mit dem FQDN, nunmehr nicht.

    Ich habe mir jetzt geholfen, indem ich einen Eintrag in die hosts-Datei gemacht habe:

     

    #IP-Adresse SQL-Servername

    12.34.56.78 server

     

     

    Denn sonst findet Access verständlicherweise den Server ja nicht, wenn ich nur den Namen ohne Domain hinten dran angebe.

    Und wo im SSMS gebe ich den von Dir genannten Code ein? Bin da zugegebenermaßen ziemlich unbedarft...

    EDIT: Ok, das habe ich kapiert, einfach eine Neue Abfrage und dann !Ausführen.

     

    Besten Dank

    Thilo

    Montag, 11. Oktober 2010 08:54
  • Hallo,

    der SQL Server verwendet selbst keine DNS (FQDN) Namen, da dass nur für TCP/IP gültig wäre.
    Vermutlich hat es beim alten Server funktioniert, weil Du einen Hostnamen eingetragen hattest.
    Der Servername sollte auch ohne manuellen Hostnamen-Eintrag gefunden werden,
    wenn die Netzwerkkonfiguration passt.
    Bei aktivem SQL Server Browser-Dienst werden die benötigten Informationen
    für Server und Instanznamen direkt geliefert.

    Um SQL direkt auszuführen, verwende Neue Abfrage
    (Du solltest Dich bei Gelegenheit näher damit beschäftigen,
    denn darüber kann man Ausführungpläne uvm. erreichen,
    womit man erst die vollen Möglichkeiten des SQL Servers ausschöpft)

    Gruß Elmar

    Montag, 11. Oktober 2010 09:12
  • Nein, der Hostname war eigentlich nirgendwo eingetragen. Wir haben hier eine Fritzbox als Router, die Clients haben die Fritzbox als DNS-Server eingetragen bzw. holen sich diese als solchen per DHCP. In der Fritzbox kann man keine Hostnamen definieren, bleibt nur noch die hosts-Datei, aber auch die ist jungfräulich...

    Falls es nicht klar war: Der Server ist nicht im selben LAN wie die Clients, der Server steht in einem Rechenzentrum und die Clients sind ein paar hundert Kilometer entfernt. VPN machen wir auch (noch) nicht.

    Access muß doch irgendwie wissen, wie es einen Rechnernamen bzw. die Kombination Rechnername\Instanzname erreicht. Selbst der SQL Browser-Dienst kann da doch nur helfen, wenn ein Client (Access) weiß, wo er diesen findet. Wie geht das denn ohne DNS (FQDN)?

    In dem Link, den Du eingefügt hast, steht u.a.:

    "Wenn SQL Server-Clients SQL Server-Ressourcen anfordern, sendet die Clientnetzwerkbibliothek über den Port 1434 eine UDP-Nachricht an den Server."

    Dazu muß es ja den Server bereits kennen bzw. wissen, wie es Ihn erreicht.

     

    Ich werde mich heute abend damit eingehender beschäftigen, vielen Dank schonmal!

    Thilo

    Montag, 11. Oktober 2010 11:12
  • Hallo Thilo,

    nein, dass es sich um ein WLAN handelt, hattest Du nicht gesagt...

    Da gelten einige andere Regeln, je nachdem, ob unterschiedliche IP-Netzwerke betroffen sind.

    Der SQL Server Browser Dienst nützt nur, wenn der Host ermittelt werden kann,
    denn an den wird die UDP Nachricht geschickt, siehe Link oben.

    Allerdings lässt sich DNS entsprechend konfigurieren,
    was aber eine Aufgabe für die Windows Server Adminstration wäre.

    Möglich ist immer, einen Alias in der SQL Server Client-Konfiguration zu hinterlegen
    (via cliconfg.exe oder im ODBC Datenquellen Dialog)
    oder direkt über IP-Adresse, Port zuzugreifen, für mehr siehe
    Wie Parameter für den Servernamen in eine Verbindungszeichenfolge verwendet, an den Client-Netzwerk-Bibliothek
    (ggf. auch den englischen Text lesen, da maschinell übersetzt)

    Gruß Elmar

     

    Montag, 11. Oktober 2010 12:08