我开发了一个 Windows 服务,它在注册表中存储和检索其 MSSQL 连接字符串。但是,我遇到的情况是,当我的服务尝试连接从注册表中检索到的字符串时,它公然忽略了指定的 UID 和 PWD。
然后我将应用程序编译并作为控制台应用程序运行,并且很自然地工作,因为控制台应用程序是使用我自己的用户帐户的权限运行的,而服务是使用本地系统帐户运行的。当我指定该服务应以我自己的用户帐户运行时,该服务成功连接到数据库。
我的结论是,当从注册表中检索应用程序时,出于某种原因,它会执行以下一项或两项操作:
- 忽略指定的 UID 和 PWD。
- 自动假定连接应在受信任模式下进行 (Trusted_Connection=true)
值得一提的是,我确实在注册表中存储的连接字符串中指定了 Trusted_Connection=false。
这是我的连接字符串:
SERVER=.\SQLEXPRESS;DATABASE=mydb;UID=myid;PWD=mypwd
有没有人能够阐明这个问题?我非常希望能够利用存储在我的连接字符串中的用户 ID 和密码。