none
SQL Server 2008 & Access 2007: Zugriff von Windows 7 Rechnern nicht möglich

    Frage

  • Hallo,

    ich habe ein seltsames Problem:

    Eine Access 2007 Datenbank versucht via ODBC Connection auf einen SQL Server (der mit Domänenrechten abgesichert ist) zuzugreifen. Von Windows XP Rechnern funktioniert dieses wunderbar, bei Windows 7 Rechner nicht. Es kommt immer eine Meldung, dass die Berechtigungen nicht vorliegen. Erstellt man jedoch über die Systemeinstellungen eine ODBC Verbindung, funktioniert der anschließende Test einwandfrei. Will man nun über die soeben erstellte und funktionstüchtige ODBC Verbindung Tabellen in Acces einbinden erscheint wieder die Meldung, dass man nicht berechtigt sei.

    Ein ersten Workaround habe ich gefunden: Man muss Access einmal als Administrator starten, über Access eine ODBC Verbindung herstellen und dann die Tabellen einbinden (als Admin geht das). Wenn Access nun als einfacher Benutzer gestartet wird, funktioniert das Einbinden der Tabellen so wie es soll - egal mit welcher Datenbank.

    Nun sollen jedoch einige Rechner mit der Access 2007 Runtime ausgestattet werden. Leider hat man dort nicht die Möglickeit ODBC Verbindung herzustellen.

    Ich habe die Runtime schon in den Kompatibilitätmodus versetzt (immer als Administrator ausführen), doch der Connections-String den ich via VBA setze, bekommt keine Rechte, den Server abzufragen.

    Kann mir irgendwer dieses Phänomen erklären? Macht es dieses Verhalten Sinn? Ich hatte die Firewall in Verdacht, doch ein Ausschalten bringt nicht das gewünschte Ergebnis.

    Ziemlich ratlos und für jede Info dankbar grüßt

    Björn

    PS: Die Fehlermeldung im Klartext: Fehler bei der Verbindung, SQL State 01000 SQL Server Fehler 67, ... ConnectionOpen, Fehler bei der Verbindung. ... SQL Server exsistiert nicht oder Zugriff verweigert.

    Montag, 28. Februar 2011 17:27

Alle Antworten

  • Hallo Björn
     
    Hat der Otto Normalverbraucher (oder die Gruppe, der er zugeordnet ist) andere Berechtigungen auf den SQL Server, als die Administratoren?
     
    Welche Client Protokolle sind aktiviert? TCP/IP? Port korrekt definiert?
     
    Hast Du schon mal versucht DSN lose Verbindungen herzustellen (Google nach DNS less connection). Das sollte in Access auch gehen.
     
    Gruss
    Henry

    Eine Access 2007 Datenbank versucht via ODBC Connection auf einen SQL Server (der mit Domänenrechten abgesichert ist) zuzugreifen. Von Windows XP Rechnern funktioniert dieses wunderbar, bei Windows 7 Rechner nicht. Es kommt immer eine Meldung, dass die Berechtigungen nicht vorliegen. Erstellt man jedoch über die Systemeinstellungen eine ODBC Verbindung, funktioniert der anschlie�?ende Test einwandfrei. Will man nun über die soeben erstellte und funktionstüchtige ODBC Verbindung Tabellen in Acces einbinden erscheint wieder die Meldung, dass man nicht berechtigt sei.

    Ein ersten Workaround habe ich gefunden: Man muss Access einmal als Administrator starten, über Access eine ODBC Verbindung herstellen und dann die Tabellen einbinden (als Admin geht das). Wenn Access nun als einfacher Benutzer gestartet wird, funktioniert das Einbinden der Tabellen so wie es soll - egal mit welcher Datenbank.

    Nun sollen jedoch einige Rechner mit der Access 2007 Runtime ausgestattet werden. Leider hat man dort nicht die Möglickeit ODBC Verbindung herzustellen.

    Ich habe die Runtime schon in den Kompatibilitätmodus versetzt (immer als Administrator ausführen), doch der Connections-String den ich via VBA setze, bekommt keine Rechte, den Server abzufragen.

    Kann mir irgendwer dieses Phänomen erklären? Macht es dieses Verhalten Sinn? Ich hatte die Firewall in Verdacht, doch ein Ausschalten bringt nicht das gewünschte Ergebnis.

    Ziemlich ratlos und für jede Info dankbar grü�?t

    Björn

    PS: Die Fehlermeldung im Klartext: Fehler bei der Verbindung, SQL State 01000 SQL Server Fehler 67, ... ConnectionOpen, Fehler bei der Verbindung. ... SQL Server exsistiert nicht oder Zugriff verweigert.

    Dienstag, 1. März 2011 08:27
  • Hallo Henry,

    danke für Deine Antwort.

    An den Rechten kann es eigentlich (sic!) nicht liegen. Alle Benutzer die Zugriff haben sollten, sind in einer Gruppe. Und von den XP Rechner funktioniert der Zugriff ja.

    Den ODBC String bastel ich schon während der Laufzeit zusammen und seten ihn dann als Connections-String in die verknüpften Tabellen.

    Mir ist noch eine Idee gekommen, die IP statt den Servernamen zu verwenden. Werde ich ausprobieren und mich wieder melden.

    Gruß,

    Björn

    Dienstag, 1. März 2011 20:48
  • Noch eine andere Idee: Weicht die Uhrzeit der Clients von der des Servers um mehr als 5 Minuten ab (oder ist gar das Systemdatum unterschiedlich)?

    Das führt zu Authentifizierungsproblemen der Windows 7-Clients.

    Viele Grüße
    Olaf

    Dienstag, 1. März 2011 22:56
  • Das hat alles nichts gebracht :(

    Ich habe extra ein kleines Script geschrieben, was die verschiedensten Verbindungsmöglichkeiten ausprobiert. Aber mit Access (Runtime) erhält man keinen Zugriff auf den Server.

    (werte geändert)

    ODBC;DATABASE=dbName;DRIVER={SQL Server};OPTION=;PORT=1433;SERVER=servername\sqlinstance;

    ODBC;DATABASE=dbName;DRIVER={SQL Server};OPTION=;UID=username;pwd=geheim;PORT=1433;SERVER=servername\sqlinstance;

    ODBC;DATABASE=dbName;DRIVER={SQL Server};OPTION=;PORT=1433;SERVER=192.168.0.1\sqlinstance;

    ODBC;DATABASE=dbName;DRIVER={SQL Server};OPTION=;PORT=1433;SERVER=192.168.0.1\sqlinstance;Trusted_Connection=Yes

    Es kommt immer die Meldung:

    Err.Number:      -2147467259
    Err.Description: [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server existiert nicht oder Zugriff verweigert.
    Err.Source:      Microsoft OLE DB Provider for ODBC Drivers

    Ich habe die "AttachDSNLessTable" Funktion von Microsoft ausprobiert ( http://support.microsoft.com/kb/892490 ) - ohne Erfolg.

    Ich habe die bestehende und funktionierende DNS Verbindung eingebunden (mit der Funktion CreateDSNConnection aus dem selben Artikel) was noch funktionierte, jedoch konnte ich hinterher nicht auf die Tabelle zugreifen.

    Gibt es noch irgendwelche Ideen?

     

    Dienstag, 8. März 2011 17:48
  • Nachtrag: Beim Server handelt es sich um eine englische Version von Win 2008 mit SQL Server 2008 Express. Kann es evtl. an der englische Version liegen? Die Clients sind deutsche Versionen von Windows 7.
    Dienstag, 8. März 2011 20:43
  • Ich denke, Du wärst mit dieser Frage in einem SQL Server Forum besser bedient, weil es wahrscheinlich an irgend einer Konfiguration des Servers oder Client Protokolls, oder an den Berechtigungen liegt.

    Gruss

    Henry

    Mittwoch, 9. März 2011 03:56
  • Hallo Henry,

    ich denke langsam auch. Da die Verbindung zum Server grundsätzlich aber funktioniert, habe ich die Ursache bei Access vermutet.

    Vielen Dank jedenfalls.

    Falls ich eine Lösung finden sollte, werde ich sie hier auf jeden Fall posten.

    Beste Grüße,

    Björn

    Mittwoch, 9. März 2011 14:15
  • Hallo Björn,

    ist da zufällig ein 64bit Win7?
    Dann erstellst Du über die Systemsteuerung auch nur eine 64bit DSN mit der Access nicht arbeiten kann.
    Über "C:\Windows\SysWOW64\odbcad32.exe" kannst Du Dir auch die 32bittigen DSN erstellen. Damit funtioniert es bei mir.

     

    LG Maik

    Mittwoch, 16. März 2011 12:41
  • Hallo Maik,

    vielen Dank für den Tipp. Werde das mal so weiterreichen.

    Wir haben nun einen umständlichen Workaround gefunden: Access 2003 installieren, darüber als Admin die DSN erzeugen, (DSN kann danach wieder gelöscht werden), Access 2003 deinstallieren, Access 2003 Runtime installieren, Verbindung klappt.

    Mit der Variante von Maik würde der Workaround natürlich ein bisschen eleganter sein ;-) Ich werde es nächste Woche versuchen - falls noch ein neuer Rechner ohne ist.

    Vielen Dank!

    Gruß,

    Björn


    • Bearbeitet BHorn Donnerstag, 24. März 2011 18:35 Access 2003 Runtime, nicht 2007
    Donnerstag, 24. März 2011 18:31
  • Hallo Björn

    Da ich heute genau das gleiche Problem hatte und nun die Lösung gefunden habe möchte ich es hier niederschreiben.

    Datenbank SQL Server 2008 R2 Express auf Windows 2008 Server

    Windows XP Client können mit einer unter Access 2010 SP1 erstellten MDE via ODBC SQL Server Treiber problemlos auf die eingebundenen Tabellen zugreifen, lesen, schreiben, einfügen und auch löschen.

    Windows 7 64bit Client mit Access 2010 Runtime (SP1) kann nicht verbinden.

    Man muss darauf achten, dass auf dem Server der SQL Server Browser läuft (ist bei Express nicht Standard, also aktivieren) und dass in der Windows Firewall der UDP Port 1434 geöffnet wird. Zusätzlich TCP Port 1433 öffnen den hatte ich geöffnet wegen den XP Rechnern.

    Nach dem öffnnen von Port 1434 konnte ich die ODBC Verbindung in Acces auch verwenden. Genau wie du beschrieben hattest war im ODBC Manager der Test schon vorher OK aber in Access ging es dann eben nicht.

    Gruss Markus

    Dienstag, 28. Februar 2012 12:47
  • Am 28.02.2012 schrieb Markus Wenger:

    Datenbank SQL Server 2008 R2 Express auf Windows 2008 Server

    Nur fürs Protokoll, dieser Artikel hatte mir auch schon geholfen:
    http://blog.alexonasp.net/post/2011/03/06/Auf-welchem-Port-lauft-mein-SQL-Server-%28Express%29-2008-R2-Oder-warum-bekomme-ich-keine-Verbindung.aspx

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/
    Reg2xml:  http://www.reg2xml.com - Registry Export File Converter

    Donnerstag, 1. März 2012 18:13