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

Область применения: yesSQL Server (все поддерживаемые версии)

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

Важно!

Во время установки SQL Server Express для группы BUILTIN\Users добавляется имя входа. Благодаря этому все прошедшие проверку подлинности пользователи компьютера получают доступ к экземпляру SQL Server Express как члены роли public. Имя входа группы 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, которое указано здесь. Начиная с SQL Server 2016 (13.x); все выпуски SQL Server поддерживают TLS 1.2 без установки дополнительных обновлений.

В этом разделе

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

Включение протокола SNP

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

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

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

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

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

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

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

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

  2. Запустите Windows PowerShell из панели задач или нажмите кнопку "Пуск", а затем последовательно выберите "Все программы", "Стандартные", "Windows PowerShell" и "Windows PowerShell".

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

  4. Выполните следующие инструкции, чтобы включить протокол TCP и протокол именованных каналов. Замените <computer_name> именем компьютера, на котором работает SQL Server. Если настраивается именованный экземпляр, замените 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']"  
    

Перезапуск компонента Database Engine с использованием 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