在我们的旧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;"不会被忽视吗?
值得一提的是,应用程序通过本地网络连接到WindowsServer2016Standard上的SQLServer2016Express。
发布于 2017-05-17 20:20:41
你的问题是
集成Security=SSPI
应该将其设置为false (或完全删除),因为您使用的不是当前的Windows用户身份验证,而是标准的SQL用户密码登录。
走出MSDN文档
如果为false,则在连接中指定用户ID和密码。如果为true,则使用当前Windows帐户凭据进行身份验证。公认的值为true、false、yes、no和sspi (强烈推荐),相当于true。如果指定了用户ID和密码,并且将Integrated设置为true,则将忽略用户ID和密码,并使用集成安全性。
https://stackoverflow.com/questions/44033982
复制相似问题