Problema
- Aparece el error "Se ha producido un error al cargar archivos de base de datos de las bases de datos de Microsoft SQL Server. Compruebe si la cuenta 'NT AUTHORITY\SYSTEM' tiene permisos suficientes para leer datos de las vistas de sistema de las bases de datos maestras" en el producto ESET Windows Server
- Aparece un error al obtener la ubicación personalizada de los datos de la base de datos
- Habilite el servicio ESET para obtener la ubicación personalizada de los datos de la base de datos
- Múltiples instancias de Microsoft SQL Server en un único servidor
Solución
Aparece un error al obtener la ubicación personalizada de los datos de la base de datos
Las exclusiones automáticas para Microsoft SQL Server consisten principalmente en ubicaciones predeterminadas de archivos de bases de datos. Sin embargo, también consta de rutas en las que los archivos de base de datos se almacenan en ubicaciones personalizadas. En este caso, la cuenta NT AUTHORITY\SYSTEM debe tener los derechos adecuados para extraer esta información de la base de datos maestra.
En Microsoft SQL Server 2016 y versiones posteriores, Microsoft eliminó el rol de servidor sysadmin para la cuenta NT AUTHORITY\SYSTEM, lo que provoca que los productos ESET Windows Server pierdan el acceso a los datos de la base de datos maestra, que contiene las ubicaciones de los datos de la base de datos de la instancia de Microsoft SQL Server.
Los productos ESET Windows Server informan de este problema a través del mensaje de error. Haga clic en Archivos de registro, seleccione Eventos en el menú desplegable y vea el mensaje de error:
"Se ha producido un error al cargar archivos de base de datos de las bases de datos de Microsoft SQL Server. Compruebe si la cuenta 'NT AUTHORITY\SYSTEM' tiene permisos suficientes para leer datos de las vistas de sistema de las bases de datos maestras"
Haga clic en la imagen para ampliarla en una ventana nueva
Habilitar el servicio ESET para obtener la ubicación personalizada de los datos de la base de datos
Para permitir que nuestro servicio obtenga la ubicación personalizada de los datos de la base de datos, siga uno de los tres procedimientos siguientes mediante Microsoft SQL Server Management Studio:
- Conceda los permisos 'Ver cualquier definición' a la cuenta NT AUTHORITY\SYSTEM (recomendado)
- Conceder el rol de servidor 'sysadmin' a la cuenta NT AUTHORITY\SYSTEM
- Asigne el rol de base de datos 'db_owner' a la base de datos 'master' en la cuenta NT AUTHORITY\SYSTEM
A. Conceder los permisos "Ver cualquier definición" a la cuenta NT AUTHORITY\SYSTEM (recomendado)
-
Acceda a Microsoft SQL Server Management Studio y conéctese a la instancia de Microsoft SQL Server seleccionada.
-
Haga clic en Valores. En la columna Conceder, active la casilla de verificación situada junto a Ver cualquier definición. Haga clic en Aceptar.
Figura 2-1
B. Conceder el rol de servidor 'sysadmin' a la cuenta NT AUTHORITY\SYSTEM
-
Vaya a Microsoft SQL Server Management Studio y conéctese a la instancia de Microsoft SQL Server seleccionada.
-
Haga clic en Server Roles (Funciones del servidor), active la casilla situada junto a sysadmin y haga clic en OK (Aceptar).
Figura 2-2
C. Asigne el rol de base de datos 'db_owner' a la base de datos 'master' en la cuenta NT AUTHORITY\SYSTEM
-
Navegue a Microsoft SQL Server Management Studio y conéctese a la instancia de Microsoft SQL Server elegida.
-
Haga clic en Asignación de usuarios. En la sección Usuarios asignados a este inicio de sesión, seleccione la casilla situada junto a maestro. En la sección Database role membership for, seleccione la casilla de verificación situada junto a db_owner. Haga clic en Aceptar.
Figura 2-3
Varias instancias de MS SQL Server en un único servidor
Puede conectarse a una instancia específica de Microsoft SQL Server mediante el cuadro de diálogo de conexión que aparece al iniciar Microsoft SQL Server Management Studio:
-
Vaya a Microsoft SQL Server Management Studio y conéctese al servidor elegido.
- Escriba la instancia en el campo Nombre del servidor con el formato que se indica a continuación y haga clic en Conectar.
<nombre_servidor>\<nombre_instancia>
Figura 3-1
Obtención de la lista de instancias de Microsoft SQL Server
Existen varias formas de obtener la lista de instancias de Microsoft SQL Server instaladas en el servidor:
-
Al instalar una nueva instancia de Microsoft SQL Server, en el paso en el que se escribe el nombre de la nueva instancia, el Asistente de instalación mostrará una lista de las instancias instaladas actualmente.
-
La lista de instancias instaladas se encuentra en la siguiente ruta del registro de Windows
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Nombres de InstanciasPara obtener la lista, utilice el siguiente comando de PowerShell:
Get-Item "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\NombresDeInstancia\SQL" | % {$_.Property} -
Cada instancia de Microsoft SQL Server instala el servicio correspondiente en el sistema. El nombre de este servicio tiene el siguiente formato:
SQL Server (<nombre_de_instancia>)Puede filtrar estos servicios en el sistema para obtener una lista de las instancias de Microsoft Server SQL instaladas mediante el siguiente comando de PowerShell:Get-Service | ?{ $_.DisplayName -like "SQL Server (*" }