6

在 D5 中使用 TAdoConnection 使用密码 sa 帐户连接到 Windows 7 64 位计算机上的本地 Sql Server,我收到错误“用户 sa 登录失败”,尽管我已经将 TAdoConnection ConnectionString 构建为包括密码。到 BeforeConnect 事件触发时,ConnectionString 不再包含密码。我可以在 WillConnect 事件中设置密码,然后连接就可以正常工作。

我的问题是,什么是从 ConnectionString 中删除密码?是否可能在 W7 中添加了一些安全功能 - 我不记得在 XP 上遇到过这个问题。

顺便说一句:即使我在 ConnectionString 中将 Persist Security Info 设置为 true,这个问题仍然会发生 - 密码甚至不会存储在 DFM 中。

4

1 回答 1

7

您的 ConnectionString 需要包含“Persist Security Info=True”,请参阅此先前主题。我使用了两个 const,一个用于 SQL 身份验证,另一个用于 Active Directory 身份验证,然后填写空白。

const
  csCONNECTION   = 'Provider=%s;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s';
  csADCONNECTION = 'Provider=%s;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=%s;Data Source=%s';
于 2013-08-08T12:06:10.947 回答