windows-7 - 客户端应用程序发送用户名,SQL Server 2019 将其转换为 Windows 身份验证并引发错误
问题描述
我们有一个桌面应用程序,它使用通用用户名和密码连接到 Azure 中托管的 SQL Server 2019。从 Windows 10 执行应用程序时,此连接完美运行。
但是从 Windows 7 执行时,相同的应用程序无法运行。在 SQL 错误日志中,我们注意到,它忽略了提供的用户名,而是选择执行此应用程序的用户(Windows 身份验证)并验证他们对数据库的访问。在我们的例子中,用户无权访问数据库。因此它失败了。
请澄清,为什么它忽略提供的用户名以及为什么它需要 Windows 身份验证?
SQL 错误日志中的错误:
2021 年 4 月 1 日 14:16:31,MSSQL$SQLPRDXXXX,审核失败,用户“NMPC\abcde”登录失败。原因:基于令牌的服务器访问验证因基础结构错误而失败。登录缺少连接 SQL 权限。[客户端:IP 地址],(4),18456,NMPC\abcde,DB SERVER 名称。
桌面应用程序是供应商产品。它使用 UDL 文件
UDL 文件的内容:
[oldb]; 此行之后的所有内容都是 OLE DB 初始化字符串 Provider=SQLOLEDB.1;Persist Security Info=False;User ID=generic_user;Initial Catalog=databasename;Data Source=Servername
解决方案
推荐阅读
- java - 使用 Spring-Boot 2.1 从 .yml 读取对象列表
- excel - VBA 获取打开 Excel 二进制工作簿
- php - 有没有办法像谷歌一样用箭头和边框制作叠加层?
- java - 前三个字符的停止者密码解密不起作用
- python - 如果没有给出图像= execption,则Django模型函数保存ImageField
- postgresql - 如何创建一个名称与操作系统用户不同的 Postgres 11 用户/角色?
- kubernetes - 将 fully_qualified_digest 放入 yaml 进行部署
- javascript - 如何转换整数数组中的对象数组,使用 ramda.js 从这些对象中提取值?
- python - 如何使用 Selenium python 通过 id 查找网站元素?
- html - 使用xml2包在R中读取包含@的HTML标签属性名称