Benutzer mit den meisten Antworten
SQL Express 2005: Management Studio-Zugriff funktioniert, MS-Access nicht

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
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
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Montag, 11. Oktober 2010 12:30
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 22. Oktober 2010 10:20
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
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Montag, 11. Oktober 2010 12:30
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 22. Oktober 2010 10:20
-
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
-
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
-
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
-
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