2

概括

使用 nodejs繁琐的驱动程序,我可以指定任何域名以通过 NTLM 身份验证连接到我的 SQL Server 实例,然后能够使用此连接查询数据库。

背景

繁琐的驱动程序被用作几乎所有流行的节点 SQL Server 模块(node-mssqltypeorm)的 db 连接器,不出所料,我在使用所有三个模块进行测试时遇到了这个问题。

从历史上看,我相信这不是问题,所以我开始怀疑这是否与我正在使用的 Windows 机器的配置有关(Win Server 2016)。不幸的是,我缺乏 Windows 管理知识。

目前官方 GitHub 上针对繁琐的驱动程序提出了一个问题,该问题完全涵盖了我所遇到的情况,但我不明白驱动程序如何成为此问题的根源。

我尝试过的事情

  • 连接到 Windows 域的 VM
  • 未连接到 Windows 域的 VM
  • 与不是默认管理员的用户连接
  • 成功登录尝试后检查事件查看器日志
    • 这将 SecurityID、Account Name 和 Account Domain 显示为所有正确的值(而不是我在连接配置中指定的不正确的值)

再生产

npm 安装繁琐

let config = {
  server: '<server ip>',
  port: 1433,
  authentication: {
    type: 'ntlm',
    options: {
        domain: 'WRONGDOMAIN',
        userName: 'Administrator', // update me
        password: 'password' // update me
    }
  },
  options: {
    database: '<database name>'
  }
}

然后,只要用户具有所需的权限,无论域值是什么,我都可以连接到数据库。

4

0 回答 0