gpt4 book ai didi

sql-server - ADO.Net 将 "Persist Security Info"默认值更改回 True

转载 作者:行者123 更新时间:2023-12-02 13:37:45 24 4
gpt4 key购买 nike

信息:我们有一个用于我们公司生产的第三方应用程序。该程序使用 DSN 通过 ODBC 连接到我们的 SQL Server 2012 数据库。此应用程序在 Server 2003 (MADC 2.8) 下正常工作,但是当我将其带到 Server 2008 x86 (DAC 6.0) 时,我收到连接失败,并显示“Microsoft OLE DB Provider SQL Server Login failed for user XXX”。我有一种感觉,这是由于从服务器 2008 及更高版本开始,Windows 服务器上“持久安全信息”的默认设置从 True 更改为 False(DAC 6.0 中进行的更改)。我无权更改应用程序内的连接字符串,因为它是第三方。如article 所示

问题:是否有任何方法可以更改 ADO.Net 的行为,以便该值在连接字符串之外默认为 True 而不是 False。我希望至少能够证明或反驳这是导致问题的功能。

注意:我意识到这是一个巨大的安全问题,篡改此设置,如果更改,我们将采取正确的预防措施,以确保服务器和应用程序隔离。

解决方案:由下面的@William 提供。如果您正在将 SQL Server 3rd 方应用程序从 Server 2003 更新到 Server 2008+,并且您获得了如上所述的连接,而在 2003 上您没有获得连接,请将 SQL 帐户的密码设置为空(暂时或仅在临时阶段,这是在生产中留空是非常危险的)来测试应用程序在提供空白密码时是否再次工作。如果是,则应用程序不会在连接字符串中设置持久安全信息,并且默认为 true 的值现在默认为 false。您的应用程序可能仅限于在服务器 2003 下使用,并且可能无法在服务器 2008+ 上正常运行。我无法找到将默认值恢复为 true 的方法。

最佳答案

如果应用程序使用现有的连接对象来构造新的连接字符串,则可能有解决此问题的方法 - 具体取决于应用程序和安全约束。

由于使用集成安全性时可能不存在此问题,因此我们可以假设需要“SQL Server 标准安全性”。如果 SQL Server 帐户使用空白密码,那么在构造新的连接字符串时,它就会是正确的(有些偶然)。

关于sql-server - ADO.Net 将 "Persist Security Info"默认值更改回 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30894338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com