Compartilhar via


Habilitar ou desabilitar um protocolo de rede de servidor

Aplica-se a:SQL Server – Somente Windows

Todos os protocolos de rede são instalados durante a 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 login BUILTIN\Users pode ser removido com segurança para restringir o acesso ao Mecanismo de Banco de Dados aos usuários do computador que têm logins individuais ou que são membros de outros grupos do Windows com login.

  • 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, consulte o suporte do TLS 1.2 para o Microsoft SQL Server. 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 esse script de qualquer computador, com ou sem o SQL Server instalado. Verifique se ter 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 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.
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

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.