首页 > 解决方案 > SQL Server 允许为 NTLM 身份验证提供不正确的域名

问题描述

概括

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

背景

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

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

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

我尝试过的事情

再生产

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>'
  }
}

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

标签: node.jssql-servertediousnode-mssqlntlm-authentication

解决方案


推荐阅读