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

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

Внимание

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

Предупреждение

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

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

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

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

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

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

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

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

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

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

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

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

  2. Запустите c панели задач Windows PowerShell 2.0 или нажмите кнопку «Пуск», а затем последовательно выберите «Все программы», «Стандартные», «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

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