Habilitar ou desabilitar um protocolo de rede de servidor

Aplica-se a: SQL Server – Somente Windows

Todos os protocolos de rede são instalados pela Instalação do SQL Server, mas podem ou não ser habilitados. Este artigo descreve como habilitar ou desabilitar um protocolo de rede de servidor no SQL Server usando o SQL Server Configuration Manager ou o PowerShell. O Mecanismo de Banco de Dados deve ser interrompido e reiniciado para que a alteração entre em vigor.

Comentários

  • Durante a instalação do SQL Server Express Edition, é adicionado um logon para o grupo BUILTIN\Users. Esse logon permite que todos os usuários autenticados do computador acessem a instância do SQL Server Express como membros da função pública. O logon BUILTIN\Users pode ser removido com segurança para restringir o acesso a Mecanismo de Banco de Dados aos usuários do computador que têm logons individuais ou que são membros de outros grupos do Windows com logons.

  • Os provedores de dados SQL Server e Microsoft do SQL Server até o SQL Server 2014 (12.x) somente dão suporte para TLS 1.0 e para SSL 3.0 por padrão. Se você impor um protocolo diferente (como TLS 1.1 ou o TLS 1.2) fazendo alterações na camada SChannel do sistema operacional, as conexões com o SQL Server poderão falhar, a menos que você tenha instalado a atualização apropriada que adiciona o suporte para TLS 1.1 e 1.2 ao SQL Server. Para obter mais informações, confira Base de dados de conhecimento 3135244. A começar no SQL Server 2016 (13.x), todas as versões de lançamento do SQL Server incluem suporte para TLS 1.2 sem a necessidade de atualizações adicionais.

Usar o SQL Server Configuration Manager

  1. No SQL Server Configuration Manager, no painel de console, expanda Configuração de Rede do SQL Server.

  2. No painel do console, selecione Protocolos para <nome da instância>.

  3. No painel de detalhes, clique com o botão direito do mouse no protocolo que deseja alterar e clique em Habilitar ou Desabilitar.

  4. No painel do console, clique em Serviços do SQL Server.

  5. No painel de detalhes, clique com botão direito do mouse em SQL Server (<nome da instância>) e depois clique em Reiniciar para parar e reiniciar o serviço do SQL Server.

Observação

Se você tiver uma instância nomeada do SQL Server, incluindo o SQL Server Express Edition, também deverá reiniciar o serviço SQL Server Browser.

Usar o SQL Server PowerShell

Habilitar um protocolo de rede de servidor com o PowerShell

  1. Usando as permissões de administrador, abra um prompt de comando.

  2. Inicie o Windows PowerShell na barra de tarefas ou no menu Iniciar.

  3. Importe o módulo SqlServer inserindo Import-Module SqlServer.

  4. Execute as instruções a seguir para habilitar os protocolos TCP e de pipes nomeados. Substitua <computer_name> pelo nome do computador que está executando o SQL Server. Se estiver configurando uma instância nomeada (incluindo o SQL Server Express Edition), substitua MSSQLSERVER pelo nome da instância.

    Para desabilitar protocolos, defina as propriedades IsEnabled como $false.

    Você pode executar este script em qualquer máquina, com ou sem o SQL Server instalado. Verifique se ter o módulo SqlServer instalado.

    #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
    

Configurar os protocolos do computador local

Quando o script é executado localmente e configura o computador local, o SQL Server PowerShell pode tornar o script mais flexível determinando o nome do computador local dinamicamente. Para recuperar o nome de computador local, substitua a linha que define a variável $uri pela linha a seguir.

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

Reiniciar o Mecanismo de Banco de Dados com o SQL Server PowerShell

Depois de habilitar ou desabilitar os protocolos, você deve parar e reiniciar o Mecanismo de Banco de Dados para que a alteração entre em vigor. Execute as instruções a seguir para parar e iniciar a instância padrão usando o SQL Server PowerShell. Para parar e iniciar uma instância nomeada, substitua 'MSSQLSERVER' por '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

Observação

Se você tiver uma instância nomeada do SQL Server, incluindo o SQL Server Express Edition, também deverá reiniciar o serviço SQL Server Browser.