[KB8406] 在 ESET Windows 服务器产品中添加获取数据库数据位置的权限,以便为 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' 帐户是否有足够的权限从主数据库的系统视图中读取数据"。

图 1-1
点击图片在新窗口中查看大图
如果由于安全原因无法进行任何更改
  • 如果无法进行任何更改,自动排除将只包含默认位置。
  • 如果某些数据库文件位于一个或多个特定位置(不在默认路径中),请手动添加该路径或将其添加到排除项中。
  • 如果所有数据库文件都只位于默认位置,请忽略此错误


启用 ESET 服务以获取数据库数据的自定义位置

要启用我们的服务以 获取数据库数据的自定义位置,请使用 Microsoft SQL Server Management Studio 按照以下三个步骤之一进行操作:

  1. 向 NT AUTHORITY\SYSTEM 账户授予 "查看任何定义 "权限(推荐)
  2. 向 NT AUTHORITY\SYSTEM 账户授予 "sysadmin "服务器角色
  3. 为 NT AUTHORITY\SYSTEM 账户中的 "master "数据库分配 "db_owner "数据库角色
A.为 NT AUTHORITY\SYSTEM 账户授予 "查看任何定义 "权限(推荐)
建议程序

此过程只授予读取权限,因此对系统的安全影响极小。

  1. 导航到 Microsoft SQL Server Management Studio 并连接到所选的 Microsoft SQL Server 实例

  2. 单击Securables。在 "授予 "列中,选择 "查看任何定义"旁边的复选框。单击确定

    图 2-1
B.将 "sysadmin "服务器角色授予 NT AUTHORITY\SYSTEM 帐户
  1. 导航到 Microsoft SQL Server Management Studio 并连接到所选的 Microsoft SQL Server 实例

  2. 单击 "服务器角色",选择sysadmin旁边的复选框,然后单击 "确定"。

    图 2-2
C.为 NT AUTHORITY\SYSTEM 账户中的 "master "数据库分配 "db_owner "数据库角色
  1. 导航到 Microsoft SQL Server Management Studio 并连接到所选的 Microsoft SQL Server 实例

  2. 单击用户映射。在 "映射到此登录的用户"部分,选择master 旁边的复选框。在数据库角色成员资格部分,选择db_owner 旁边的复选框。单击确定

    图 2-3
为每个 Microsoft SQL Server 实例执行的程序

必须为服务器上安装的每个 Microsoft SQL Server 实例执行所选程序。

获取服务器上安装的Microsoft SQL Server 实例列表

如果在一台服务器上使用多个 Microsoft SQL Server 实例,请连接到特定的 Microsoft SQL Server 实例


单个服务器上的多个 MS SQL Server 实例

您可以使用启动 Microsoft SQL Server Management Studio 时显示的连接对话框连接到特定的 Microsoft SQL Server 实例:

  1. 导航到 Microsoft SQL Server Management Studio 并连接到所选服务器。

  2. 按以下格式在服务器名称字段中键入实例,然后单击连接

    <服务器名称>/<实例名称

    图 3-1
Microsoft SQL Server Express

某些复杂环境或服务安装提供 Microsoft SQL Server 的免费版本,称为 Microsoft SQL Server Express。

该 SQL 服务器版本免费提供。它的规模和性能有限,更适合小型企业。

例如,如果在安装 ESET PROTECT On-Prem 时没有提供自己的 Microsoft SQL 服务器,则默认安装 Microsoft SQL Server Express。

使用 Microsoft SQL Server Express 在每个实例上设置权限

如果仍然收到错误消息,请确认是否安装了 Microsoft SQL Server Express 实例。如果有 Microsoft SQL Server Express 实例,请更新第一节中所述的权限。

获取 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 (<instance_name>)

    您可以使用以下 PowerShell 命令过滤系统中的这些服务,以获取已安装的 Microsoft Server SQL 实例列表:

    Get-Service | ?{ $_.DisplayName -like "SQL Server (*"}