0

在我们的旧 vb6 应用程序连接字符串之一如下:

nk = "Provider=SQLOLEDB;"
nk = nk + "Integrated Security=SSPI;"
nk = nk + "Persist Security Info=False;"
nk = nk + "User ID=sa;"
nk = nk + "Password=******;"
nk = nk + "Initial Catalog=" & db & ";"
nk = nk + "Data Source=" & hn
kon.ConnectionString = nk
kon.Open

如果我尝试连接这些选项,它将不起作用,所以我很感兴趣为什么这两个选项:

nk = nk + "Integrated Security=SSPI;"
nk = nk + "Persist Security Info=False;"

不被忽视?

只需提及该应用程序正在通过本地网络连接到 Windows Server 2016 Standard 上的 Sql Server 2016 Express。

4

1 回答 1

2

你的问题是

综合安全=SSPI

它应该设置为 false(或完全删除),因为您使用的不是当前的 Windows 用户身份验证,而是标准的 SQL 用户密码登录。

MSDN 文档

如果为 false,则在连接中指定用户 ID 和密码。如果为 true,则使用当前 Windows 帐户凭据进行身份验证。识别值为true、false、yes、no、sspi(强烈推荐),相当于true。如果指定了 User ID 和 Password 并且 Integrated Security 设置为 true,则 User ID 和 Password 将被忽略并使用 Integrated Security。

于 2017-05-17T20:20:41.257 回答