Udostępnij za pośrednictwem


Włączanie lub wyłączanie protokołu sieciowego serwera

Dotyczy:programu SQL Server — tylko system Windows

Wszystkie protokoły sieciowe są instalowane podczas instalacji przez instalatora programu SQL Server, ale mogą być włączone lub nie. W tym artykule opisano sposób włączania lub wyłączania protokołu sieciowego serwera w programie SQL Server przy użyciu programu SQL Server Configuration Manager lub programu PowerShell. Aby zmiany zaczęły obowiązywać, aparat bazy danych musi zostać zatrzymany i uruchomiony ponownie.

Uwagi

  • Podczas konfigurowania wersji SQL Server Express dodawane jest konto logowania dla grupy BUILTIN\Users. Dzięki temu loginowi wszyscy uwierzytelnieni użytkownicy komputera mogą uzyskiwać dostęp do wystąpienia programu SQL Server Express jako członkowie roli publicznej. Identyfikator logowania BUILTIN\Users można bezpiecznie usunąć, aby ograniczyć dostęp silnika bazy danych do użytkowników, którzy mają indywidualne logowania lub są członkami innych grup systemu Windows z identyfikatorami logowania.

  • Dostawcy danych programu SQL Server i firmy Microsoft dla programu SQL Server do programu SQL Server 2014 (12.x) obsługują domyślnie tylko protokoły TLS 1.0 i SSL 3.0. Jeśli wymusisz inny protokół (taki jak TLS 1.1 lub TLS 1.2), wprowadzając zmiany w warstwie SChannel systemu operacyjnego, połączenia z programem SQL Server mogą zakończyć się niepowodzeniem, chyba że zainstalujesz odpowiednią aktualizację, aby dodać obsługę protokołu TLS 1.1 i 1.2 do programu SQL Server. Aby uzyskać więcej informacji, zobacz KB 3135244. Począwszy od programu SQL Server 2016 (13.x), wszystkie wersje programu SQL Server obejmują obsługę protokołu TLS 1.2 bez konieczności wprowadzania dalszych aktualizacji.

Korzystanie z programu SQL Server Configuration Manager

  1. W Menedżerze Konfiguracji SQL Server, w okienku konsoli, rozwiń węzeł SQL Server Network Configuration.

  2. W okienku konsoli wybierz opcję Protokoły dla nazwy wystąpienia <>.

  3. W okienku szczegółów kliknij prawym przyciskiem myszy protokół, który chcesz zmienić, a następnie wybierz pozycję Włącz lub Wyłącz.

  4. W okienku konsoli wybierz pozycję usługi serwera SQL.

  5. W okienku szczegółów kliknij prawym przyciskiem myszy pozycję SQL Server (nazwa wystąpienia<>), a następnie wybierz pozycję Uruchom ponownie, aby zatrzymać i ponownie uruchomić usługę programu SQL Server.

Notatka

Jeśli masz nazwane wystąpienie programu SQL Server, w tym program SQL Server Express, należy również ponownie uruchomić usługę SQL Server Browser.

Korzystanie z programu SQL Server PowerShell

Włączanie protokołu sieciowego serwera za pomocą programu PowerShell

  1. Przy użyciu uprawnień administratora otwórz wiersz polecenia.

  2. Uruchom program Windows PowerShell z paska zadań lub menu Start.

  3. Zaimportuj moduł SqlServer, wprowadzając Import-Module SqlServer.

  4. Wykonaj następujące instrukcje, aby włączyć protokoły TCP i nazwanych potoków. Zastąp <computer_name> nazwą komputera z uruchomionym programem SQL Server. Jeśli konfigurujesz nazwane wystąpienie (w tym wersję SQL Server Express), zastąp MSSQLSERVER nazwą wystąpienia.

    Aby wyłączyć protokoły, ustaw właściwości IsEnabled na $false.

    Ten skrypt można uruchomić z dowolnego komputera z zainstalowanym programem SQL Server lub bez programu . Upewnij się, że zainstalowano moduł 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
    

Konfigurowanie protokołów dla komputera lokalnego

Po uruchomieniu skryptu lokalnie i skonfigurowaniu komputera lokalnego program SQL Server PowerShell może zwiększyć elastyczność skryptu, dynamicznie określając nazwę komputera lokalnego. Aby pobrać nazwę komputera lokalnego, zastąp linię ustawiającą zmienną $uri następującym wierszem.

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

Uruchom ponownie aparat bazy danych za pomocą programu SQL Server PowerShell

Po włączeniu lub wyłączeniu protokołów należy zatrzymać i ponownie uruchomić aparat bazy danych, aby zmiany zaczęły obowiązywać. Wykonaj następujące instrukcje, aby zatrzymać i uruchomić wystąpienie domyślne przy użyciu programu SQL Server PowerShell. Aby zatrzymać i uruchomić nazwane wystąpienie, zastąp 'MSSQLSERVER''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

Notatka

Jeśli masz nazwaną instancję programu SQL Server, w tym edycję SQL Server Express, należy również ponownie uruchomić usługę SQL Server Browser.