Поделиться через


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

Область применения: SQL Server — только Для Windows

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

Замечания

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

  • Поставщики данных SQL Server и Майкрософт для 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. Импортируйте модуль SqlServer, введя Import-Module SqlServer.

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

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

    Этот скрипт можно запустить с любого компьютера или с установленным SQL Server. Убедитесь, что установлен модуль 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
    

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

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

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

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

После включения или отключения протоколов необходимо остановить и перезапустить ядро СУБД, чтобы изменения вступили в силу. Выполните следующие инструкции, чтобы остановить и запустить экземпляр по умолчанию с помощью 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.