参考别人的: 日志名称: Application 来源: MSSQLSERVER 日期: 2010/8/31 10:07:12 事件 ID: 17806 任务类别: 登录 级别: 错误 关键字: 经典 用户: 暂缺 计算机: server1 描述: 使用集成安全性建立连接时,SSPI 握手失败,错误代码 0x8009030c;该连接已关闭。 SSPI handshake failed with error code 0x8009030c while establishing a connection with integrated security; the connection has been closed. 前些日子,客户的Win2008+MSSQL2008总是报这个错误,但是不影响系统的正常使用,分析客户的应用系统,为PB6.5 PB8.0开发,通过调试,确认是系统(PB)的MSSQL的DLL文件版本太老造成的。 解决方法: COPY MSSQL2000或更高版本的如下文件到WINNT\STSTEM32目录 Ntwdblib.dll SQLServer核心文件 dbnetlib.dll 通信层协议文件 就搞定了! 我的错误原因: VC连接远程SQL Server 2008的字符串有问题: 原来的:m_strConnection =_T("Driver={SQL Server};Server=" + strServerName + ";Trusted_Connection=Yes;Database=" + strDbName + ";uid=" + strUserName + ";pdw=" + strPassWord); 看上去是用了用户名和密码,实际上把用户名和密码改了也能登录。。。身份验证模式为仅Windows 正确的: //身份验证模式为:"sql server和windows"m_strConnection =_T("Provider=SQLOLEDB.1;Persist Security Info=True;User ID=" + strUserName + ";Password="+strPassWord+";Initial Catalog=" + strDbName + ";Data Source=" + strServerName); 然后,再为用户分配权限即可! |
|
来自: herowuking > 《VC》