3

¿Con qué cuenta de servicio y en qué puerto escucha tu SQL SERVER?

Para mantener viva la llama del blog en una época de mucho trabajo y poco tiempo libre para poder dedicarle a nuestro hobbie, hemos decidido hacer una entrada simple, pero muy útil.

Muchas veces, nos interesa saber que cuenta arrancó el SQL Server y qué puerto está usando. Para ello, muchos usamos el SQL Configuration Manager para comprobar esta información, pero, ¿cómo ahorrar tiempo y hacerlo con T-SQL?

Si ya tienes una ventana abierta de SSMS lo único que tienes que lanzar son estas dos consultas:

Cuenta de servicio:

select @@servername as InstanceName ,servicename, service_account
FROM sys.dm_server_services

Puerto:

SELECT  top 1 @@servername as InstanceName,local_tcp_port 
FROM sys.dm_exec_connections 

Nota: Esta query funcionará siempre que esté habilitado el protocolo de red TCP/IP y la conexión use este protocolo (Y no otro como SharedMemory o NamedPipes)

Pero no, esto no termina aquí. Como siempre, intentamos añadir un valor añadido 😉:

¿Cómo lanzar estas consultas simultáneamente en muchas instancias?

Seguro que lo encuentras muy útil, para tener un inventario, realizar un informe que te soliciten, realizar una comprobación masiva, etc.

Gracias a la ayuda de Powershell lo podemos hacer, usaremos el comando Invoke-Sqlcmd pasándole como valor al parámetro -ServerInstance una variable que será obtenida desde un fichero servers.txt

Contenido de fichero servers.txt, una instancia por cada línea:

Script en Powershell:

$servers = Get-Content 'C:\Users\pInstall.sicuel\Desktop\servers.txt'
ForEach ($server in $servers) {
Invoke-Sqlcmd -Query "SELECT top 1 @@servername as InstanceName ,servicename, service_account,local_tcp_port 
FROM sys.dm_server_services, sys.dm_exec_connections " -ServerInstance $server
} 

Fácil y sencillo, guarda este script de Powershell, ¡ya que te ayudará a lanzar consultas múltiples.

Os recordamos que todo esto lo podéis completar con la entrada https://sicuel.es/2019/02/11/como-comprobar-el-estado-de-la-cuenta-de-servicio-sql-server/  donde comprobábamos el estado de las cuentas de servicio de nuestras instancias a través, también, de PowerShell

Hasta la próxima!

3 comentarios

  1. Muy sencillo, pero esta información también la puedes obtener con comandos de sistema operativo desde Powershell ¿no?

    • Si, y aunque tenemos conocimientos de Powershell, creemos que el T-SQL es nuestro lenguaje por defecto!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *