Включение или отключение сетевого протокола сервера

Применимо к:SQL Server — только Windows

Все сетевые протоколы устанавливаются во время установки SQL Server установки, но могут быть включены или не включены. В этой статье описывается, как включить или отключить сетевой протокол сервера в SQL Server с помощью диспетчер конфигурации SQL Server или PowerShell. Компонент Компонент Database Engine необходимо остановить и перезапустить, чтобы изменения вступили в силу.

Комментарии

  • Во время установки выпуска SQL Server Express для группы BUILTIN\Users добавляется имя входа. Это имя входа позволяет всем пользователям компьютера, прошедшим проверку подлинности, получить доступ к экземпляру SQL Server Express в качестве члена общедоступной роли. Имя входа группы BUILTIN\Users можно удалить, чтобы ограничить доступ к компоненту Компонент Database Engine только пользователям компьютера, у которых есть отдельные имена входа, или членам других групп Windows с именами входа.

  • Поставщики данных SQL Server и Microsoft для версий с SQL Server по SQL Server 2014 (12.x) по умолчанию поддерживают только TLS 1.0 и SSL 3.0. При применении другого протокола (например, TLS 1.1 или TLS 1.2) путем внесения изменений на уровне SChannel операционной системы подключения к SQL Server могут завершиться сбоем, если не установить соответствующее обновление для добавления поддержки TLS 1.1 и 1.2 в SQL Server. Дополнительные сведения см. в 3135244 базы знаний. Начиная с SQL Server 2016 (13.x); все выпуски SQL Server поддерживают TLS 1.2 без установки дополнительных обновлений.

Использование диспетчер конфигурации SQL Server

  1. В диспетчере конфигурации SQL Server в области консоли разверните раздел Сетевая конфигурация SQL Server.

  2. В области консоли выберите Протоколы в поле <Имя> экземпляра.

  3. В области сведений щелкните правой кнопкой мыши протокол, который требуется изменить, и выберите включить или отключить.

  4. В области консоли выберите SQL Server Службы.

  5. В области сведений щелкните правой кнопкой мыши SQL Server (<имя> экземпляра) и выберите Перезапустить, чтобы остановить и перезапустить службу SQL Server.

Примечание

Если у вас есть именованный экземпляр SQL Server, включая SQL Server Express выпуск, необходимо также перезапустить службу браузера SQL Server.

Использование SQL Server PowerShell

Включение сетевого протокола сервера с помощью PowerShell

  1. Используя разрешения администратора, откройте командную строку.

  2. Запустите Windows PowerShell на панели задач или в меню "Пуск".

  3. Импортируйте модуль sqlps , введя Import-Module sqlps.

  4. Выполните следующие инструкции, чтобы включить протокол TCP и протокол именованных каналов. Замените <computer_name> именем компьютера, на котором работает SQL Server. Если вы настраиваете именованный экземпляр (включая SQL Server Express выпуск), замените MSSQLSERVER именем экземпляра.

    Чтобы отключить протоколы, установите для свойства IsEnabled значение $false.

    $smo = 'Microsoft.SqlServer.Management.Smo.'
    $wmi = new-object ($smo + 'Wmi.ManagedComputer').
    
    # 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
    

Настройка протоколов для локального компьютера

Если скрипт запускается локально и настраивает локальный компьютер, с помощью SQL Server PowerShell можно сделать скрипт более гибким, динамически определяя имя локального компьютера. Для получения имени локального компьютера замените строку, устанавливающую переменную $uri , следующей строкой.

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

Перезапустите ядро СУБД с помощью SQL Server PowerShell

После включения или отключения протоколов необходимо остановить и перезапустить компонент Компонент Database Engine , чтобы эти изменения вступили в действие. Выполните следующие инструкции, чтобы остановить и запустить экземпляр по умолчанию с использованием SQL Server PowerShell. Чтобы остановить и запустить именованный экземпляр, замените на '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

Примечание

Если у вас есть именованный экземпляр SQL Server, включая SQL Server Express выпуск, необходимо также перезапустить службу браузера SQL Server.

Дальнейшие действия