Aktivieren oder Deaktivieren eines Servernetzwerkprotokolls

Gilt für:SQL Server – nur Windows

Alle Netzwerkprotokolle werden während der Installation vom SQL Server-Setup installiert, jedoch möglicherweise nicht aktiviert. In diesem Artikel wird beschrieben, wie mit dem SQL Server-Konfigurations-Manager oder PowerShell ein Servernetzwerkprotokoll in SQL Server aktiviert oder deaktiviert wird. Datenbank-Engine muss beendet und neu gestartet werden, damit die Änderung wirksam wird.

Bemerkungen

  • Während des Setups der SQL Server Express-Edition wird eine Anmeldung für die Gruppe „BUILTIN\Users“ hinzugefügt. Diese Anmeldung ermöglicht allen authentifizierten Benutzer*innen des Computers den Zugriff auf die Instanz von SQL Server Express als Mitglied der öffentlichen Rolle. Die BUILTIN\Users-Anmeldung kann sicher entfernt werden, um den Datenbank-Engine -Zugriff auf Computerbenutzer zu beschränken, die eigene Logins besitzen oder Mitglieder anderer Windows-Gruppen mit Logins sind.

  • SQL Server- und Microsoft-Datenanbieter für SQL Server bis SQL Server 2014 (12.x) unterstützen standardmäßig nur TLS 1.0 und SSL 3.0. Wenn Sie durch Änderungen an der SChannel-Betriebssystemebene ein anderes Protokoll (beispielsweise TLS 1.1 oder TLS 1.2) erzwingen, treten bei Ihren Verbindungen mit SQL Server möglicherweise Fehler auf, wenn Sie nicht das entsprechende Update installiert haben, um in SQL Server Unterstützung für TLS 1.1 und 1.2 hinzuzufügen. Weitere Informationen finden Sie unter KB 3135244. Ab SQL Server 2016 (13.x) bieten alle SQL Server-Versionen TLS 1.2-Unterstützung, ohne dass weitere Updates erforderlich sind.

Verwenden des SQL Server-Konfigurations-Managers

  1. Erweitern Sie im SQL Server-Konfigurations-Manager im Konsolenbereich den Knoten SQL Server-Netzwerkkonfiguration.

  2. Klicken Sie im Konsolenbereich auf Protokolle für<Instanzname>.

  3. Klicken Sie im Detailbereich mit der rechten Maustaste auf das zu ändernde Protokoll, und klicken Sie dann auf Aktivieren bzw. Deaktivieren.

  4. Wählen Sie im Konsolenbereich SQL Server-Dienste aus.

  5. Klicken Sie im Detailbereich mit der rechten Maustaste auf SQL Server (<Instanzname>), und klicken Sie dann auf Neu starten, um den SQL Server-Dienst zu beenden und neu zu starten.

Hinweis

Wenn Sie über eine benannte Instanz von SQL Server verfügen, einschließlich der SQL Server Express-Edition, sollten Sie auch den SQL Server-Browserdienst neu starten.

Verwenden von SQL Server PowerShell

Aktivieren eines Servernetzwerkprotokolls mit PowerShell

  1. Öffnen Sie eine Eingabeaufforderung mit Administratorberechtigungen.

  2. Starten Sie Windows PowerShell über die Taskleiste oder das Startmenü.

  3. Importieren Sie das SqlServer-Modul, indem Sie Import-Module SqlServer eingeben.

  4. Führen Sie die folgenden Anweisungen aus, um die Protokolle für TCP und Named Pipes zu aktivieren. Ersetzen Sie <computer_name> mit dem Namen des Computers, auf dem SQL Serverausgeführt wird. Wenn Sie eine benannte Instanz (einschließlich der SQL Server Express-Edition) konfigurieren, ersetzen Sie MSSQLSERVER durch den Namen der Instanz.

    Um die Protokolle zu deaktivieren, legen Sie die IsEnabled -Eigenschaften auf $falsefest.

    Sie können dieses Skript von jedem Rechner aus ausführen, mit oder ohne installiertem SQL Server. Stellen Sie sicher, dass das SqlServer-Modul installiert ist.

    #requires the SqlServer module
    Import-Module SQLServer
    
    $wmi = New-Object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer <#computer_name#>
    
    # List the object properties, including the instance names.
    $Wmi
    
    # Enable the TCP protocol on the default instance.
    $uri = "ManagedComputer[@Name='<#computer_name#>']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
    $Tcp = $wmi.GetSmoObject($uri)
    $Tcp.IsEnabled = $true
    $Tcp.Alter()
    $Tcp
    
    # Enable the named pipes protocol for the default instance.
    $uri = "ManagedComputer[@Name='<#computer_name#>']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']"
    $Np = $wmi.GetSmoObject($uri)
    $Np.IsEnabled = $true
    $Np.Alter()
    $Np
    

Konfigurieren der Protokolle für den lokalen Computer

Wenn das Skript lokal ausgeführt wird und den lokalen Computer konfiguriert, kann SQL Server PowerShell das Skript flexibler gestalten, indem der lokale Computernamen dynamisch festgelegt wird. Um den lokalen Computernamen abzurufen, ersetzen Sie die Zeile, die die $uri -Variable festlegt, mit der folgenden Zeile.

$uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"

Neustarten der Datenbank-Engine mit SQL Server PowerShell

Nachdem Sie Protokolle aktiviert oder deaktiviert haben, müssen Sie Datenbank-Engine beenden und neu starten, damit die Änderung wirksam wird. Führen Sie die folgenden Anweisungen aus, um die Standardinstanz mithilfe von SQL Server PowerShell zu beenden und zu starten. Um eine benannte Instanz zu beenden und zu starten, ersetzen Sie 'MSSQLSERVER' durch 'MSSQL$<instance_name>'.

# Get a reference to the ManagedComputer class.
CD SQLSERVER:\SQL\<computer_name>
$Wmi = (get-item .).ManagedComputer
# Get a reference to the default instance of the Database Engine.
$DfltInstance = $Wmi.Services['MSSQLSERVER']
# Display the state of the service.
$DfltInstance
# Stop the service.
$DfltInstance.Stop();
# Wait until the service has time to stop.
# Refresh the cache.
$DfltInstance.Refresh();
# Display the state of the service.
$DfltInstance
# Start the service again.
$DfltInstance.Start();
# Wait until the service has time to start.
# Refresh the cache and display the state of the service.
$DfltInstance.Refresh();
$DfltInstance

Hinweis

Wenn Sie über eine benannte Instanz von SQL Server verfügen, einschließlich der SQL Server Express-Edition, sollten Sie auch den SQL Server-Browserdienst neu starten.