Partilhar via


Habilitar ou desabilitar um protocolo de rede de servidor

Aplica-se a: SQL Server em Windows

Todos os protocolos de rede são instalados durante a instalação, pela Instalação do SQL Server, mas podem ou não estar 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, um logon é adicionado 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 membro da função pública. O login BUILTIN\Users pode ser removido com segurança para restringir o acesso do Mecanismo de Banco de Dados a usuários de computador que tenham logons individuais ou sejam membros de outros grupos do Windows com logons.

  • Os provedores de dados SQL Server e Microsoft para SQL Server até SQL Server 2014 (12.x) oferecem suporte apenas a TLS 1.0 e SSL 3.0 por padrão. Se você impor um protocolo diferente (como TLS 1.1 ou TLS 1.2) fazendo alterações na camada SChannel do sistema operacional, suas conexões com o SQL Server poderão falhar, a menos que você instale a atualização apropriada para adicionar suporte para TLS 1.1 e 1.2 ao SQL Server. Para obter mais informações, consulte Suporte a TLS 1.2 para Microsoft SQL Server. No SQL Server 2016 (13.x) e versões posteriores, todas as versões de lançamento do SQL Server incluem pelo menos suporte a TLS 1.2 sem necessidade de mais atualizações.

Utilizar o SQL Server Configuration Manager

  1. No SQL Server Configuration Manager, no painel do console, expanda SQL Server Network Configuration.

  2. No painel de consola, selecione Protocolos para o nome da instância <>.

  3. No painel de detalhes, clique com o botão direito do rato no protocolo que pretende alterar e, em seguida, selecione Ativar ou Desativar.

  4. No painel de console, selecione SQL Server Services.

  5. No painel de detalhes, clique com o botão direito do mouse SQL Server (nome da instância<>)e, em seguida, selecione Reiniciarpara 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 Navegador do SQL Server.

Usar o SQL Server PowerShell

Habilitar um protocolo de rede de servidor com o PowerShell

  1. Usando 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 seguintes para ativar os protocolos TCP e pipes nomeados. Substitua <computer_name> pelo nome do computador que está executando o SQL Server. Se você estiver configurando uma instância nomeada (incluindo a edição SQL Server Express), substitua MSSQLSERVER pelo nome da instância.

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

    Você pode executar esse script de qualquer máquina, com ou sem o SQL Server instalado. Verifique se você tem o módulo SqlServer instalado.

    # This script 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 para o computador local

Quando o script é executado localmente e configura o computador local, o SQL Server PowerShell pode torná-lo mais flexível determinando dinamicamente o nome do computador local. Para recuperar o nome do 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']"

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

Depois de habilitar ou desabilitar 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.
Set-Location 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

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