Zugriff auf SQL-Server nicht möglich: Unterschied zwischen den Versionen
(→Fehler-Möglichkeiten) |
|||
Zeile 12: | Zeile 12: | ||
* Prüfen Sie, ob eine [http://de.wikipedia.org/wiki/Firewall Firewall] auf dem Server und dem Arbeitsplatz-Rechner aktiv ist. | * Prüfen Sie, ob eine [http://de.wikipedia.org/wiki/Firewall Firewall] auf dem Server und dem Arbeitsplatz-Rechner aktiv ist. | ||
− | * Schalten Sie - wenn möglich - die Firewall zum Test aus und versuchen Sie, ob dann die Verbindung möglich ist. | + | |
+ | * Schalten Sie - '''wenn möglich''' - die Firewall auf dem Client und dem Server zum Test aus und versuchen Sie, ob dann die Verbindung möglich ist. | ||
+ | |||
* Definieren Sie in der [http://de.wikipedia.org/wiki/Firewall Firewall], dass bestimmte [http://de.wikipedia.org/wiki/Port_(Protokoll) Port]s für den eingehenden und ausgehenden Zugriff freigeschaltet sind: | * Definieren Sie in der [http://de.wikipedia.org/wiki/Firewall Firewall], dass bestimmte [http://de.wikipedia.org/wiki/Port_(Protokoll) Port]s für den eingehenden und ausgehenden Zugriff freigeschaltet sind: | ||
+ | ;Microsoft SQL-Server©: | ||
** MS-SQL-Server benutzt standardmäßig den TCP/IP-Port '''1433'''. | ** MS-SQL-Server benutzt standardmäßig den TCP/IP-Port '''1433'''. | ||
+ | ** Der MS-SQL-Dienst '''SQL Server Browser''' ist für die Kommunikation des SQL-Server-Dienstes mit dem Netzwerk zuständig. Er benutzt das Protokoll '''UDP''' mit dem Port '''1434'''. | ||
+ | ;MySQL©: | ||
** mySQL benutzt standardmäßig den TCP/IP-Port '''3306'''. | ** mySQL benutzt standardmäßig den TCP/IP-Port '''3306'''. | ||
+ | ;ORACLE©: | ||
** ORACLE benutzt standardmäßig den TCP/IP-Port '''1521'''. | ** ORACLE benutzt standardmäßig den TCP/IP-Port '''1521'''. | ||
− | |||
* Diese müss ggf. in der Firewall freigeschaltet werden. | * Diese müss ggf. in der Firewall freigeschaltet werden. | ||
+ | |||
* Falls Sie über TCP/IP keinen Zugriff zum Microsoft-SQL-Server erhalten, können Sie im ODBC-Treiber auch den Zugriff über “Named-Pipes” aktivieren. Dieses Netzwerkprotokoll wird vom SQL-Server standardmäßig ebenfalls unterstützt. Es ist allerdings nicht routingfähig und auch nicht mehr besonders modern, so dass es eigentlich nicht mehr verwendet werden soll. | * Falls Sie über TCP/IP keinen Zugriff zum Microsoft-SQL-Server erhalten, können Sie im ODBC-Treiber auch den Zugriff über “Named-Pipes” aktivieren. Dieses Netzwerkprotokoll wird vom SQL-Server standardmäßig ebenfalls unterstützt. Es ist allerdings nicht routingfähig und auch nicht mehr besonders modern, so dass es eigentlich nicht mehr verwendet werden soll. | ||
− | * Auch einige Virenscanner verhindern das ordnungsgemäße installieren. In diesem Fall muss der Virenscanner zeitweise deaktiviert werden. | + | |
+ | * Auch einige '''Virenscanner'''(z.B. TrendMicro) verhindern das ordnungsgemäße installieren. In diesem Fall muss der Virenscanner zeitweise deaktiviert werden. | ||
+ | |||
* Wie Sie die Windows-Firewall einstellen müssen, wird [http://msdn.microsoft.com/de-de/library/ms175043.aspx hier] beschrieben. | * Wie Sie die Windows-Firewall einstellen müssen, wird [http://msdn.microsoft.com/de-de/library/ms175043.aspx hier] beschrieben. | ||
+ | |||
* Ob die Firewall den Zugriff behindert können Sie ganz einfach testen: | * Ob die Firewall den Zugriff behindert können Sie ganz einfach testen: | ||
** Schalten Sie die Firewall (kurzfristig!) aus und testen Sie den Zugriff auf den SQL-Server z.B. über den ODBC-Manager. Funktioniert der Zugriff nun, ist die Firewall der Übeltäter! | ** Schalten Sie die Firewall (kurzfristig!) aus und testen Sie den Zugriff auf den SQL-Server z.B. über den ODBC-Manager. Funktioniert der Zugriff nun, ist die Firewall der Übeltäter! | ||
+ | * Prüfen Sie, ob der Zugang zum SQL-Server '''auf dem Server selbst''' möglich ist: | ||
+ | ** Gehen Sie dazu z.B. in die ODBC-Datenquellen (Systemsteuerung --> Verwaltung oder "C:\Windows\SysWow64\odbcad32.exe"). | ||
+ | ** Öffnen Sie den Reiter "System DSN" und klicken auf '''Hinzufügen'''. Wählen Sie den Treiber "SQL Server" --> Fertig stellen. | ||
+ | ** Geben Sie einen beliebigen Namen ein, die Beschreibung können Sie leer lassen. Nun geben Sie den Server-Namen und ggf.die Instanz an, z.B. "MYSERVER" oder "MYSERVER\Reflex" (Backslash, nicht Slash!). Klicken Sie auf '''Weiter'''. | ||
+ | ** Wenn die '''Windows-Authentifizierung''' auf dem SQL-Server aktiviert ist, belassen Sie es bei dieser Option. Ansonsten wählen Sie '''SQL Server Authentifizierung''' und geben den Benutzernamen und das Kennwort ein. Unter mySQL© ist nur die '''Server Authentifizierung''' möglich. | ||
+ | ** Klicken Sie dann auf '''Weiter'''. Der ODBC-Admin prüft nun, ob die Verbindung möglich ist. Wenn nicht, wird eine entsprechende Fehlermeldung angezeigt. | ||
+ | |||
+ | |||
=== Einstellungen auf dem Rechner === | === Einstellungen auf dem Rechner === | ||
Zeile 68: | Zeile 85: | ||
** Wenn JA, haben Sie '''definitiv''' ein '''SQL-Server-Problem'''! Normalerweise sind das immer die Einstellungen der Firewall, siehe [http://msdn.microsoft.com/de-de/library/ms175043.aspx diesen Artikel.] | ** Wenn JA, haben Sie '''definitiv''' ein '''SQL-Server-Problem'''! Normalerweise sind das immer die Einstellungen der Firewall, siehe [http://msdn.microsoft.com/de-de/library/ms175043.aspx diesen Artikel.] | ||
** Wenn NEIN, haben Sie ein Netzwerkproblem! Da stellt sich die Frage, ob der Server mit seinem '''Namen''' angesprochen werden kann. Versuchen Sie testweise, den Server mit seiner IP-Adresse anzusprechen. Geben Sie dazu z.B. im ODBC-Manager anstelle es Namens die IP-Adresse an. Kann dann die Verbindung hergestellt werden, hat der Server ein Problem mit der Namensauflösung, also mit der [http://de.wikipedia.org/wiki/Namensaufl%C3%B6sung DNS]. | ** Wenn NEIN, haben Sie ein Netzwerkproblem! Da stellt sich die Frage, ob der Server mit seinem '''Namen''' angesprochen werden kann. Versuchen Sie testweise, den Server mit seiner IP-Adresse anzusprechen. Geben Sie dazu z.B. im ODBC-Manager anstelle es Namens die IP-Adresse an. Kann dann die Verbindung hergestellt werden, hat der Server ein Problem mit der Namensauflösung, also mit der [http://de.wikipedia.org/wiki/Namensaufl%C3%B6sung DNS]. | ||
− | |||
== Links == | == Links == |
Version vom 7. Juli 2014, 19:54 Uhr
Inhaltsverzeichnis
1 Allgemeines
Der Zugriff vom Client auf den SQL-Server erfolgt immer über ein Netzwerk-Protokoll. Auch wenn Sie den SQL-Server auf dem gleichen Rechner haben, wird die Kommunikation über ein Netzwerk-Protokoll gehen, im Regelfall TCP/IP.
2 Fehler-Möglichkeiten
Es gibt natürlich viele Möglichkeiten, warum der Zugriff auf den SQL-Server nicht funktioniert. Hier können nur die gängigsten, bekannten Probleme und Lösungen aufgeführt werden.
2.1 Firewall
Wenn man davon ausgeht, dass alle Einstellungen korrekt sind und trotzdem kein Kontakt zum SQL-Server hergestellt werden kann, ist die Firewall der erste "Verdächtige".
- Prüfen Sie, ob eine Firewall auf dem Server und dem Arbeitsplatz-Rechner aktiv ist.
- Schalten Sie - wenn möglich - die Firewall auf dem Client und dem Server zum Test aus und versuchen Sie, ob dann die Verbindung möglich ist.
- Definieren Sie in der Firewall, dass bestimmte Ports für den eingehenden und ausgehenden Zugriff freigeschaltet sind:
- Microsoft SQL-Server©
- MS-SQL-Server benutzt standardmäßig den TCP/IP-Port 1433.
- Der MS-SQL-Dienst SQL Server Browser ist für die Kommunikation des SQL-Server-Dienstes mit dem Netzwerk zuständig. Er benutzt das Protokoll UDP mit dem Port 1434.
- MySQL©
- mySQL benutzt standardmäßig den TCP/IP-Port 3306.
- ORACLE©
- ORACLE benutzt standardmäßig den TCP/IP-Port 1521.
- Diese müss ggf. in der Firewall freigeschaltet werden.
- Falls Sie über TCP/IP keinen Zugriff zum Microsoft-SQL-Server erhalten, können Sie im ODBC-Treiber auch den Zugriff über “Named-Pipes” aktivieren. Dieses Netzwerkprotokoll wird vom SQL-Server standardmäßig ebenfalls unterstützt. Es ist allerdings nicht routingfähig und auch nicht mehr besonders modern, so dass es eigentlich nicht mehr verwendet werden soll.
- Auch einige Virenscanner(z.B. TrendMicro) verhindern das ordnungsgemäße installieren. In diesem Fall muss der Virenscanner zeitweise deaktiviert werden.
- Wie Sie die Windows-Firewall einstellen müssen, wird hier beschrieben.
- Ob die Firewall den Zugriff behindert können Sie ganz einfach testen:
- Schalten Sie die Firewall (kurzfristig!) aus und testen Sie den Zugriff auf den SQL-Server z.B. über den ODBC-Manager. Funktioniert der Zugriff nun, ist die Firewall der Übeltäter!
- Prüfen Sie, ob der Zugang zum SQL-Server auf dem Server selbst möglich ist:
- Gehen Sie dazu z.B. in die ODBC-Datenquellen (Systemsteuerung --> Verwaltung oder "C:\Windows\SysWow64\odbcad32.exe").
- Öffnen Sie den Reiter "System DSN" und klicken auf Hinzufügen. Wählen Sie den Treiber "SQL Server" --> Fertig stellen.
- Geben Sie einen beliebigen Namen ein, die Beschreibung können Sie leer lassen. Nun geben Sie den Server-Namen und ggf.die Instanz an, z.B. "MYSERVER" oder "MYSERVER\Reflex" (Backslash, nicht Slash!). Klicken Sie auf Weiter.
- Wenn die Windows-Authentifizierung auf dem SQL-Server aktiviert ist, belassen Sie es bei dieser Option. Ansonsten wählen Sie SQL Server Authentifizierung und geben den Benutzernamen und das Kennwort ein. Unter mySQL© ist nur die Server Authentifizierung möglich.
- Klicken Sie dann auf Weiter. Der ODBC-Admin prüft nun, ob die Verbindung möglich ist. Wenn nicht, wird eine entsprechende Fehlermeldung angezeigt.
2.2 Einstellungen auf dem Rechner
- Prüfen Sie alle Einstellungen sehr genau:
- ODBC: Können Sie eine Verbindung über die ODBC herstellen, aber nicht über das Programm? Dann stimmt Ihre Einstellung in der INI-Datei nicht!
- Oracle: Können Sie die Verbindung über den .Net-Konfigurations-Assistenten testen? Wenn dieser funktioniert, stimmt Ihre Einstellung in der INI-Datei nicht!
- Oracle: Prüfen Sie die Einstellungen des Netzwerk-Protokolls! Ist überall das gleiche Protokoll (TCP/IP oder TNS) angegeben?
- Unter Windows 8© oder Windows Server 2012© kann es zu Problemen kommen, wenn man dynamische Anschlüsse verwendet. In diesem Fall empfiehlt es sich, in der ODBC-Datenquelle den Anschluss (=Port) fest zu vergeben. Das trägt im ODBC-Datenquellen-Manager unter
Clientkonfiguration
so ein:
- In der Firewall kann man dann gezielt diesen Port freigeben!
2.3 Protokolle auf dem Server
Die Netzwerk-Protokolle auf dem Server könnten auch eine Fehlerquelle sein:
Öffnen Sie den SQL-Server-Konfigurations-Manager...
- Windows XP/7: Start⇒Programme⇒Microsoft SQL-Server⇒Konfigurationstools⇒SQL-Server-Konfigurations-Manager
- Windows 8: Die Kachel für den SQL-Server-Konfigurations-Manager befindet sich anfangs ziemlich weit rechts
Klicken Sie auf SQl-Server Netzwerkkonfiguration
⇒ Protokolle für SQL-Server
.
Wenn unter Dynamische TCP-Ports
eine "0" steht, entfernen Sie diese!
Tragen Sie unter TCP-Port
den Standard-Port für SQL-Server "1433" ein.
Wiederholen Sie das für alle angezeigten IP-Nummern des Servers!
Die Änderungen wirken sich erst aus, wenn Sie den SQL-Server-Dienst neu starten! Das können Sie unter SQL-Server-Dienste
mit der rechten Maustaste erledigen.
2.4 Zugriffsrechte
- Hat der Benutzer Zugriffsrechte auf den SQL-Server und die Datenbank?
- Wenn Sie über die Windows-Anmeldung (Domäne) zugreifen: Ist der Benutzer in der richtigen Gruppe zugewiesen?
- Hat die Gruppe das Zugriffsrecht auf den SQL-Server?
- Hat die Gruppe das Zugriffsrecht auf die Datenbank?
2.5 Server prinzipiell erreichbar?
- Prüfen Sie von einem anderen Rechner, ob der Server prinzipiell über seinen Namen erreichbar ist. Dazu geben Sie am Server am Einfachsten ein Verzeichnis für alle frei und prüfen an dem anderen Rechner, ob Sie auf diese Freigabe zugreifen können.
- Wenn JA, haben Sie definitiv ein SQL-Server-Problem! Normalerweise sind das immer die Einstellungen der Firewall, siehe diesen Artikel.
- Wenn NEIN, haben Sie ein Netzwerkproblem! Da stellt sich die Frage, ob der Server mit seinem Namen angesprochen werden kann. Versuchen Sie testweise, den Server mit seiner IP-Adresse anzusprechen. Geben Sie dazu z.B. im ODBC-Manager anstelle es Namens die IP-Adresse an. Kann dann die Verbindung hergestellt werden, hat der Server ein Problem mit der Namensauflösung, also mit der DNS.
3 Links
- Bekannte Probleme bei der Installation