Habilitación o deshabilitación de un protocolo de red del servidor

Se aplica a:SQL Server: solo Windows

Todos los protocolos de red se instalan durante la instalación, con el programa de instalación de SQL Server, pero se pueden habilitar o deshabilitar. En este artículo, se describe cómo habilitar o deshabilitar un protocolo de red del servidor en SQL Server mediante el Administrador de configuración de SQL Server o PowerShell. Es preciso detener y reiniciar el Motor de base de datos para que el cambio surta efecto.

Observaciones

  • Durante la instalación de la edición Express de SQL Server, se agrega un inicio de sesión para el grupo BUILTIN\Usuarios. Este inicio de sesión permite que todos los usuarios autenticados del equipo tengan acceso a la instancia de SQL Server Express como un miembro del rol público. El inicio de sesión BUILTIN\Users se pueden quitar de manera segura para restringir el acceso al Motor de base de datos a los usuarios de equipos que tienen inicios de sesión individuales o son miembros de otros grupos de Windows con inicios de sesión.

  • Los proveedores de datos SQL Server y Microsoft para SQL Server, hasta SQL Server 2014 (12.x), solo admiten TLS 1.0 y SSL 3.0 de forma predeterminada. Si aplica otro protocolo, como TLS 1.1 o TLS 1.2, al efectuar cambios en la capa SChannel del sistema operativo, es posible que las conexiones a SQL Server provoquen errores a menos que instale la actualización adecuada para admitir TLS 1.1 y 1.2 en SQL Server. Para obtener más información, consulte KB 3135244. A partir de SQL Server 2016 (13.x), todas las versiones de SQL Server admiten TLS 1.2, sin necesidad de tener que aplicar ninguna otra actualización.

Uso del Administrador de configuración de SQL Server

  1. En el panel de la consola de Administrador de configuración de SQL Server, expanda Configuración de red de SQL Server.

  2. En el panel de la consola, seleccione Protocolos de <nombre de instancia>.

  3. En el panel de detalles, haga clic con el botón derecho en el protocolo que quiera cambiar y, después, seleccione Habilitar o Deshabilitar.

  4. En el panel de la consola, haga clic en Servicios de SQL Server.

  5. En el panel de detalles, haga clic con el botón derecho en SQL Server (<nombre de instancia>) y, después, seleccione Reiniciar para detener y reiniciar el servicio SQL Server.

Nota:

Si tiene una instancia con nombre de SQL Server, incluida la edición Express de SQL Server, también debe reiniciar el servicio SQL Server Browser.

Uso de PowerShell de SQL Server

Habilitación de un protocolo de red del servidor con PowerShell

  1. Abra un símbolo del sistema utilizando permisos de administrador.

  2. Inicie Windows PowerShell desde la barra de tareas o el menú Inicio.

  3. Importa el módulo SqlServer; para ello, escribe Import-Module SqlServer.

  4. Ejecute las siguientes instrucciones para habilitar los protocolos TCP y de canalizaciones con nombre. Reemplace <computer_name> por el nombre del equipo que ejecuta SQL Server. Si va a configurar una instancia con nombre (incluida la edición Express de SQL Server), reemplace MSSQLSERVER por el nombre de instancia.

    Para deshabilitar los protocolos, establezca las propiedades IsEnabled en $false.

    Puedes ejecutar este script desde cualquier máquina, con o sin SQL Server instalado. Asegúrate de que tienes instalado el módulo SqlServer.

    #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
    

Configuración de los protocolos en el equipo local

Cuando el script se ejecuta localmente y configura el equipo local, SQL Server PowerShell puede hacer que el script sea más flexible al determinar dinámicamente el nombre del equipo local. Para recuperar el nombre del equipo local, reemplace la línea donde se establece la variable $uri por la línea siguiente.

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

Reinicio del Motor de base de datos con PowerShell de SQL Server

Después de habilitar o deshabilitar protocolos, deberá detener y reiniciar Motor de base de datos para que se aplique el cambio. Ejecute las instrucciones siguientes para detener e iniciar la instancia predeterminada mediante SQL Server PowerShell. Para detener e iniciar una instancia con nombre, sustituya '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

Nota:

Si tiene una instancia con nombre de SQL Server, incluida la edición Express de SQL Server, también debe reiniciar el servicio SQL Server Browser.