Проблема
- Вы получаете ошибку "Произошла ошибка при загрузке файлов базы данных из баз данных Microsoft SQL Server. Проверьте, имеет ли учетная запись 'NT AUTHORITY\SYSTEM' достаточные разрешения на чтение данных из системных представлений основных баз данных" в серверном продукте ESET Windows
- Возникает ошибка при получении пользовательского расположения данных базы данных
- Включите службу ESET для получения пользовательского расположения данных базы данных
- Несколько экземпляров Microsoft SQL Server на одном сервере
Решение
Возникает ошибка при получении пользовательского расположения данных базы данных
Автоматические исключения для Microsoft SQL Server состоят в основном из стандартных местоположений файлов баз данных. Однако в них также входят пути, где файлы баз данных хранятся в пользовательских местах. В этом случае учетная запись NT AUTHORITY\SYSTEM должна иметь соответствующие права для извлечения этой информации из главной базы данных.
В Microsoft SQL Server 2016 и более поздних версиях Microsoft удалила роль системного администратора сервера для учетной записи NT AUTHORITY\SYSTEM, в результате чего серверные продукты ESET Windows потеряли доступ к данным в главной базе данных, которая содержит местоположения данных базы данных экземпляра Microsoft SQL Server.
Серверные продукты ESET Windows информируют об этой проблеме сообщением об ошибке. Нажмите кнопку Файлы журнала, выберите в раскрывающемся меню пункт События и просмотрите сообщение об ошибке:
"Произошла ошибка при загрузке файлов базы данных из баз данных Microsoft SQL Server. Проверьте, имеет ли учетная запись 'NT AUTHORITY\SYSTEM' достаточные разрешения на чтение данных из системных представлений основных баз данных."
Щелкните изображение для просмотра в новом окне
Включение службы ESET для получения пользовательского расположения данных базы данных
Чтобы включить нашу службу для получения пользовательского расположения данных базы данных, выполните одну из трех описанных ниже процедур с помощью Microsoft SQL Server Management Studio:
- Предоставьте права 'View any definition' учетной записи NT AUTHORITY\SYSTEM (рекомендуется)
- Предоставьте роль сервера 'sysadmin' учетной записи NT AUTHORITY\SYSTEM
- Назначьте роль базы данных 'db_owner' базе данных 'master' в учетной записи NT AUTHORITY\SYSTEM
A. Предоставить права 'Просмотр любого определения' учетной записи NT AUTHORITY\SYSTEM (рекомендуется)
-
Перейдите в Microsoft SQL Server Management Studio и подключитесь к выбранному экземпляру Microsoft SQL Server.
-
Щелкните Securables. В столбце Grant установите флажок напротив пункта View any definition. Нажмите OK.
Рисунок 2-1
B. Предоставление роли сервера 'sysadmin' учетной записи NT AUTHORITY\SYSTEM
-
Перейдите в Microsoft SQL Server Management Studio и подключитесь к выбранному экземпляру Microsoft SQL Server.
-
Щелкните Роли сервера, установите флажок рядом с sysadmin и нажмите OK.
Рисунок 2-2
C. Назначение роли базы данных 'db_owner' для базы данных 'master' в учетной записи NT AUTHORITY\SYSTEM
-
Перейдите в Microsoft SQL Server Management Studio и подключитесь к выбранному экземпляру Microsoft SQL Server.
-
Нажмите кнопку Сопоставление пользователей. В разделе Пользователи, сопоставленные с этим логином, установите флажок рядом с master. В разделе Членство в роли базы данных для установите флажок рядом с db_owner. Нажмите OK.
Рисунок 2-3
Несколько экземпляров MS SQL Server на одном сервере
Вы можете подключиться к определенному экземпляру Microsoft SQL Server с помощью диалогового окна подключения, отображаемого при запуске Microsoft SQL Server Management Studio:
-
Перейдите в Microsoft SQL Server Management Studio и подключитесь к выбранному серверу.
- Введите экземпляр в поле Имя сервера в формате, приведенном ниже, и нажмите кнопку Подключиться.
<имя_сервера>\<имя_экземпляра>
Рисунок 3-1
Получение списка экземпляров Microsoft SQL Server
Существует несколько способов получить список экземпляров Microsoft SQL Server, установленных на сервере:
-
При установке нового экземпляра Microsoft SQL Server на этапе ввода имени нового экземпляра мастер установки отобразит список установленных в настоящее время экземпляров.
-
Список установленных экземпляров находится в следующем пути реестра Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names.Чтобы получить список, используйте следующую команду PowerShell:
Get-Item "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" | % {$_.Property} -
Каждый экземпляр Microsoft SQL Server устанавливает в систему соответствующую службу. Имя этой службы имеет следующий формат:
SQL Server (<имя_экземпляра>)Вы можете отфильтровать эти службы в системе, чтобы получить список установленных экземпляров Microsoft Server SQL, используя следующую команду PowerShell:Get-Service | ?{ $_.DisplayName -like "SQL Server (*" }