viernes, 20 de febrero de 2015

Obtener la cuenta de servicio de Microsoft SQL Server con T-SQL

Descripción:
La información de la cuenta del servicio de SQL Server es almacenada en la base de datos del Registro de Windows. Usted puede acceder a dicha información desde la Consola de Servicios (Services Console) o el Administrador de Configuración de SQL Server (SQL Server Configuration Manager).

Solución:
Para obtener la información de la cuenta desde la Consola de Servicios:
  1. Ir a Inicio > Ejecutar > services.msc
  2. Click derecho sobre el Servicio SQL Server, ej. "SQL Server (InstanceName) e ir a Propiedades
  3. La información de la cuenta esta disponible en la pestaña Log On:

También podemos obtener esta información usando T-SQL, podemos utilizar el procedimiento almacenado extendido del sistema xp_instance_regread para leer el Registro de Windows. Utilice el código siguiente para obtener la información de las cuentas del los servicios SQL Server y SQL Server Agent:

DECLARE       @sql_server_service_account         SYSNAME;DECLARE       @sql_server_agent_service_account   SYSNAME;
EXECUTE       MASTER.dbo.xp_instance_regread
              
@rootkey      = N'HKEY_LOCAL_MACHINE',
              
@key          = N'SYSTEM\CurrentControlSet\Services\MSSQLServer',
              
@value_name   = N'ObjectName',
              
@value        = @sql_server_service_account OUTPUT
EXECUTE       MASTER.dbo.xp_instance_regread
              
@rootkey      = N'HKEY_LOCAL_MACHINE',
              
@key          = N'SYSTEM\CurrentControlSet\Services\SQLServerAgent',
              
@value_name   = N'ObjectName',
              
@value        = @sql_server_agent_service_account OUTPUT
SELECT [SQL Server Service Account] = @sql_server_service_account,
      
[SQL Server Agent Service Account] = @sql_server_agent_service_account;GO


Desde Microsoft SQL Server 2008 R2 SP1 y superior una nueva vista de administración dinámica (DMV) esta disponible sys.dm_server_services la cual retorna la información de las cuentas de servicio de todas las instancia. Esta vista también retorna información adicional acerca de cada servicio como tipo de inicio, process id actual, nombre físico del ejecutable. Para consultar espec&iacuteficamente las cuentas de los servicios SQL Server y SQL Server Agent con esta vista podemos utilizar la siguiente consulta:

SELECT servicename, service_accountFROM   sys.dm_server_services
GO


Referencias

No hay comentarios:

Publicar un comentario