在这里发表我的问题,因为我敢肯定,这不是一个程序问题,更多的是服务器问题。
我正在开发一个C#程序,将访问服务器上的数据库。 如果我在我的电脑(服务器,服务器电脑)上运行程序,它工作正常。
将程序复制到另外两台电脑(一次只尝试一次),通过networking连接到我的电脑,突然间程序连接失败。
在基于XP的PC上,错误消息是“用户Server-PC \ Guestlogin失败”
在基于Vista的个人电脑上,错误信息是“用户login失败,为null”,用户没有与受信任的SQL Server连接关联。
这是我的连接代码:
\SQLEXPRESS;Database=GGDBase;Integrated Security=SSPI;Trusted_Connection=true;Persist Security Info=False;
现在,我不太了解SQL Server安装程序,添加用户权限等,但我已经完成了以下工作:
我能否就此提出一些build议? 它根本不会工作。 我还能做什么? 感谢所有回答。
PS如果重要:
我会假设这些计算机不是Windows域的成员。 您正尝试使用Windows身份validation连接到计算机,因为没有公共密码存储库(如Windows Active Directory域),所以无法正常工作。
要解决此问题,您需要在SQL Server中创build一个login名,然后在数据库中赋予它权限。 为此,请使用服务器控制台上的Management Studio连接到SQL Server。 导航到安全>login。 右键单击login,然后从下拉菜单中select“新buildlogin”。 在新窗口中select“SQL Server Authentication”,input用户名和密码。 取消选中所有checkbox。 转到用户映射页面(左边的白色痛苦),并给login在数据库中所需的权限。 然后将应用程序中的连接string更改为下面显示的内容,用您在创buildlogin名时指定的用户名和密码replacemyUsername和myPassword。
\SQLEXPRESS;Database=GGDBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
尝试在连接string中指定一些凭据。 它看起来像试图login作为来宾帐户,并被拒绝。
您可能必须使用适当的权限创build一个新的SQL帐户才能完成此操作。
如果您尝试以其他方式进行身份validation,则会查看您尝试进行身份validation的用户的权限。