Sdílet prostřednictvím


Povolení nebo zakázání síťového protokolu serveru

platí pro:SQL Server – jenom Windows

Všechny síťové protokoly se instalují během instalace, instalačním programem SYSTÉMU SQL Server, ale mohou nebo nemusí být povoleny. Tento článek popisuje, jak povolit nebo zakázat síťový protokol serveru v SQL Serveru pomocí SQL Server Configuration Manageru nebo PowerShellu. Aby se změna projevila, musí být databázový stroj zastavený a restartován.

Poznámky

  • Během instalace edice SQL Server Express se přidá přihlášení pro skupinu BUILTIN\Users. Toto přihlášení umožňuje všem ověřeným uživatelům počítače přistupovat k instanci SQL Serveru Express jako člen veřejné role. Přihlášení BUILTIN\Users je možné bezpečně odebrat, aby byl přístup databázového stroje omezen na uživatele počítače, kteří mají jednotlivá přihlášení nebo jsou členy jiných skupin Windows s přihlášeními.

  • SQL Server a poskytovatelé dat Microsoftu pro SQL Server až SQL Server 2014 (12.x) ve výchozím nastavení podporují protokoly TLS 1.0 a SSL 3.0. Pokud vynucujete jiný protokol (například TLS 1.1 nebo TLS 1.2) provedením změn ve vrstvě SChannel operačního systému, může dojít k selhání připojení k SQL Serveru, pokud nenainstalujete příslušnou aktualizaci pro přidání podpory protokolu TLS 1.1 a 1.2 na SQL Server. Další informace naleznete v tématu KB 3135244. Od VERZE SQL Serveru 2016 (13.x) zahrnují všechny verze SQL Serveru podporu protokolu TLS 1.2 bez nutnosti dalších aktualizací.

Použijte SQL Server Configuration Manager

  1. V nástroji SQL Server Configuration Manager v podokně konzoly rozbalte Konfigurace sítě SQL Serveru.

  2. V podokně konzoly vyberte Protokoly pro název instance <>.

  3. V podokně podrobností klikněte pravým tlačítkem myši na protokol, který chcete změnit, a potom vyberte Povolit nebo Zakázat.

  4. V podokně konzoly vyberte Služby SQL Server.

  5. V podokně podrobností klikněte pravým tlačítkem na SQL Server (<název instance>)a pak vyberte Restartovat, k zastavení a restartování služby SQL Serveru.

Poznámka

Pokud máte pojmenovanou instanci SQL Serveru, včetně edice SQL Server Express, měli byste také restartovat službu SQL Server Browser.

Použijte SQL Server PowerShell.

Povolení síťového protokolu serveru pomocí PowerShellu

  1. Pomocí oprávnění správce otevřete příkazový řádek.

  2. Spusťte Windows PowerShell z hlavního panelu nebo nabídky Start.

  3. Importujte modul SqlServer zadáním Import-Module SqlServer.

  4. Spuštěním následujících příkazů povolte protokoly TCP i pojmenované kanály. Nahraďte <computer_name> názvem počítače se systémem SQL Server. Pokud konfigurujete pojmenovanou instanci (včetně edice SQL Server Express), nahraďte MSSQLSERVER názvem instance.

    Chcete-li zakázat protokoly, nastavte vlastnosti IsEnabled na $false.

    Tento skript můžete spustit z libovolného počítače s nainstalovaným SQL Serverem nebo bez tohoto počítače. Ujistěte se, že máte nainstalovaný modul SqlServer.

    #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
    

Konfigurace protokolů pro místní počítač

Když se skript spustí místně a nakonfiguruje místní počítač, SQL Server PowerShell může usnadnit skript tím, že dynamicky určí název místního počítače. Chcete-li načíst název místního počítače, nahraďte řádek, který nastavuje proměnnou $uri, následujícím řádkem.

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

Restartování databázového stroje pomocí SQL Serveru PowerShellu

Po povolení nebo zakázání protokolů je nutné zastavit a restartovat databázový stroj, aby se změna projevila. Spuštěním následujících příkazů zastavte a spusťte výchozí instanci pomocí PROSTŘEDÍ SQL Server PowerShell. Pokud chcete zastavit a spustit pojmenovanou instanci, nahraďte 'MSSQLSERVER' s '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

Poznámka

Pokud máte pojmenovanou instanci SQL Serveru, včetně edice SQL Server Express, měli byste také restartovat službu SQL Server Browser.