FEHLER: Nicht gruppierten benannten Instanzen über eine Firewall herstellen.

FEHLER #: 356696 (SHILOH_BUGS)

Problembeschreibung

Wenn Sie versuchen, eine benannte Clusterinstanz von SQL Server über eine Firewall herstellen und nur den Instanznamen (z. B. SQL_Virtual_Name\Instance_Name) in der Verbindungszeichenfolge verwenden die Verbindung fehlschlägt, und möglicherweise eine der folgenden Fehlermeldungen angezeigt:

Fehlermeldung 1
Angegebene SQL Server wurde nicht gefunden.
Fehlermeldung 2
SQL Server existiert nicht oder Zugriff verweigert.
Wenn Sie einen Netzwerk-Trace auf dem Server ausführen, sehen Sie, dass der Server die Abfrage vom Clientcomputer auf UDP-Port 1434 für virtuelle Server-IP-Adresse erhält; die Antwort wird die physische IP-Adresse des Clusterknotens gesendet, das SQL Server ausgeführt wird.

Ursache

Wenn ein Clientcomputer auf einem Computer mit einer gruppierten Instanz von SQL Server, verbindet Wenn die Verbindungszeichenfolge nicht TCP-Zielport angeben, fragt die Clientbibliothek Server Port UDP 1434 zum Sammeln von Informationen über die Instanz.


Wenn der Server die Informationen zurückgibt, enthält Netzwerk Rahmen die IP-Adresse des physischen Knotens anstelle der IP-Adresse des virtuellen Servers. Abhängig von der Firewallkonfiguration dieses Netzwerkpaket kann gelöscht und der Client möglicherweise keine Antwort erhalten.

PROBLEMUMGEHUNG

Um dieses Verhalten zu umgehen können Sie:

  • Geben Sie die TCP-Anschlussnummer in der Verbindungszeichenfolge. Beispielsweise der virtuelle SQL Server-Server lautet VSERVER1, und hört auf TCP-Port 2433, enthält die Verbindungszeichenfolge die folgenden Attribute.
    Data Source=VSERVER1\instancename,2433;Network Library=dbmssocn
    – oder –

  • Erstellen eines SQL Server-Alias auf jedem Client mithilfe der SQL Server-Clientkonfiguration. Der Alias geben Sie die Netzwerkbibliothek (TCP/IP), und die Portnummer an Dieser Alias in Ihrer Verbindungszeichenfolge verwenden und Netzwerkbibliothek-Attribut nicht in der Verbindungszeichenfolge angeben.

    Die Erstellung der SQL Server-Alias auf jedem Client automatisieren mit einem Gruppenrichtlinienobjekt (GPO) auf dem Domänencontroller. Angenommen Sie, die virtuelle Instanz von SQL Server VSERVER1\MyInstance lautet. Die virtuelle Instanz von SQL Server ist TCP Port 2433 abhört. Der Name des SQL Server-Alias, den Sie erstellen möchten, ist MyAlias. Gehen Sie folgendermaßen vor, um die Erstellung des SQL Server-Alias zu automatisieren:
    1. Erstellen Sie eine REG-Datei mit den Registrierungseintrag für den SQL Server-Alias auf dem Domänencontroller.

      Erstellen Sie beispielsweise eine Myreg.reg-Datei mit den folgenden Informationen.
      Windows Registry Editor Version 5.00
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
      "DSQUERY"="DBNETLIB"
      "MyAlias"="DBMSSOCN,VSERVER1\MyInstance,2433"
    2. Erstellen Sie eine Organisationseinheit (OU) folgendermaßen Sie vor:
      1. Öffnen Sie Active Directory-Benutzer und-Computermit der rechten Maustaste Domänenname, zeigen Sie auf neuund klicken Sie dann auf Organisationseinheit.
      2. Klicken Sie im Dialogfeld Neues Objekt - Organisationseinheit Geben Sie einen Namen für die Organisationseinheit, und klicken Sie auf OK.
    3. Fügen Sie die Benutzer und Computer, die das Gruppenrichtlinienobjekt mit der Organisationseinheit angewendet werden soll. Ziehen Sie dazu die Benutzer und Computer mit der Organisationseinheit, die Sie in Schritt 2 erstellt haben.
    4. Ein Gruppenrichtlinienobjekt mit der Organisationseinheit hinzufügen. Dieses GPO gilt ein Benutzer Anmelde- oder Startskript .reg-Datei importieren. Gehen Sie hierzu folgendermaßen vor:
      1. Maustaste auf die Organisationseinheit, die Sie in Schritt 2 erstellt haben und klicken Sie dann auf Eigenschaften.
      2. Klicken Sie im Dialogfeld Eigenschaften auf die Registerkarte Gruppenrichtlinie .
      3. Auf der Registerkarte Gruppenrichtlinie auf neuund klicken Sie dann auf Bearbeiten , um das Gruppenrichtlinienobjekt-Editor -Fenster zu öffnen.
      4. Wenn Sie das Gruppenrichtlinienobjekt an Benutzer oder Gruppen anwenden möchten, führen Sie diesen Schritt:
        • Erweitern Sie Benutzerkonfiguration, erweitern Sie Windows-Einstellungenklicken Sie Skripts (Anmelden/Abmelden)und doppelklicken Sie dann auf Anmelden.
        Wenn Sie das Gruppenrichtlinienobjekt auf Computer anwenden möchten, führen Sie diesen Schritt:
        • Erweitern Sie Computerkonfiguration, erweitern Sie Windows-Einstellungenklicken Sie auf Skripts (Start/Herunterfahren)und doppelklicken Sie dann auf Start.
      5. Klicken Sie im Dialogfeld Eigenschaften auf Dateien anzeigen , um den Ordner, der die Skriptdateien enthält.

        Hinweis Universal Naming Convention (UNC) Pfad in die Adressleiste des Ordnerfensters angezeigt wird.
      6. Speichern Sie die Datei Myreg.reg in den Ordner, den Sie in Schritt 4e geöffnet.
      7. Erstellen Sie in demselben Ordner eine bat-Datei mit den folgenden Informationen. Davon aus, dass der Dateiname Mybat.bat.
        Regedit /s <Path>\Myreg.reg
        Hinweise
        • < Pfad > stellt Quellpfad des Ordners.
        • Die Befehlszeilenoption gibt an, dass die .reg-Datei im Hintergrund zu importieren.
      8. Klicken Sie im Dialogfeld Eigenschaften auf Hinzufügen.
      9. Klicken Sie im Dialogfeld Hinzufügen eines Skripts auf Durchsuchen.
      10. Klicken Sie im Dialogfeld Durchsuchen suchen Sie die Datei Mybat.bat und klicken Sie dann auf Öffnen.
      11. Klicken Sie im Dialogfeld Hinzufügen eines Skripts auf OK.
      12. Klicken Sie im Dialogfeld Eigenschaften auf OK.
    5. Stellen Sie sicher, dass die Benutzer und Computer in Schritt 3 die Leseberechtigung und die Berechtigung Gruppenrichtlinie übernehmen für das Gruppenrichtlinienobjekt. Gehen Sie hierzu folgendermaßen vor:
      1. In Active Directory-Benutzer und-Computermit der rechten Maustaste der Organisationseinheit, die Sie in Schritt 2 erstellt haben und dann auf Eigenschaften.
      2. Klicken Sie im Dialogfeld Eigenschaften auf die Registerkarte Gruppenrichtlinie .
      3. Auf der Registerkarte Gruppenrichtlinie auf das Gruppenrichtlinienobjekt, das Sie in Schritt 4 c erstellt und klicken Sie auf Eigenschaften.
      4. Klicken Sie im Dialogfeld Eigenschaften auf der Registerkarte Sicherheit .
      5. Sicherstellen Sie auf der Registerkarte Sicherheit , dass die Benutzer und Computer das Gruppenrichtlinienobjekt gilt unter Gruppen-oder Benutzernamenaufgeführt sind.
      6. Stellen Sie sicher, dass die Leseberechtigung und die Berechtigung Gruppenrichtlinie übernehmen für Benutzer und Computer angegeben werden.

Status

Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.

In den folgenden Fällen wird dieses Problem behoben:
  • Microsoft SQL Server 2008 auf Windows Server 2008 installiert
  • Microsoft SQL Server 2005 gibt es mit Microsoft SQL Server 2008 auf Windows Server 2008
Dieses Problem tritt in Microsoft SQL Server 2008 auf Windows Server 2003.

Weitere Informationen

Klicken Sie für weitere Informationen auf die folgenden Artikelnummern, um die betreffenden Artikel in der Microsoft Knowledge Base anzuzeigen:

944390 BEHEBEN: Fehlermeldung beim Herstellen einer benannten Instanz von SQL Server auf einem Clientcomputer, auf denen Windows Vista oder Windows Server 2008 ausgeführt wird: "SQL Server nicht gefunden" oder "Fehler beim Suchen von Server-Instanz angegeben"

936302 Liste der bekannten Probleme bei der Installation von SQL Server 2005 unter Windows Server 2008

Eigenschaften

Artikelnummer: 318432 – Letzte Überarbeitung: 09.01.2017 – Revision: 1

Feedback