信息:我们有一个第三方应用程序,我们用于在我们公司生产.此程序使用DSN通过ODBC连接到我们的sql Server 2012数据库.此应用程序在Server 2003(MADC 2.8)下正常工作,但是当我将它带到Server 2008 x86(DAC 6.0)时,我得到的连接失败,“用户XXX的Microsoft OLE DB提供程序sql Server登录失败”.我有一种感觉,这是因为在服务器2008及更高版本(在DAC 6.0中进行了更改)的
Windows服务器上,“持久安全信息”的默认值从True变为False.我没有权限更改应用程序内部的连接字符串,因为它是第三方.如此
article 所示
问题:有没有办法更改ADO.Net的行为,以便在连接字符串之外将此值默认为True而不是False.我希望能够至少证明或反驳这是导致问题的特征.
注意:我意识到这是一个巨大的安全问题,篡改了这个设置,如果更改它们以确保服务器和应用程序是隔离的,我们将采取正确的预防措施.
解决方案:由@William提供.如果要更新sql Server第3方应用程序从Server 2003到Server 2008,并且您正在获得上面的连接,那么在2003年您没有,请将sql帐户的密码设置为空白(暂时或仅在暂存时,这是非常的在生产中留空是危险的),以便在提供空白密码时测试应用程序是否再次运行.如果是,则应用程序不在连接字符串中设置Persist Security Info,并且默认为true的值现在默认为false.您的应用程序可能仅限于在服务器2003下使用,并且可能无法在服务器2008上正常运行.我无法找到将默认值恢复为true的方法.