SQL Server 2005 Express over LAN – “Servername \ Guest”login失败

在这里发表我的问题,因为我敢肯定,这不是一个程序问题,更多的是服务器问题。

我正在开发一个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安装程序,添加用户权限等,但我已经完成了以下工作:

  • 在服务器configurationpipe理器中启用TCP / IP协议
  • 将服务器设置为“SQL Server和Windows身份validation模式”
  • 通过防火墙允许程序。

我能否就此提出一些build议? 它根本不会工作。 我还能做什么? 感谢所有回答。

PS如果重要:

  1. 我的服务器正在运行Windows 7。
  2. 我用来尝试连接的另外两台电脑都运行Windows XP(SP3)和Vista。 他们都连接到networking。 是的,他们可以共享文件。
  3. 我正在使用SQL Server 2005的EXPRESS版本。
  4. 我正在开发的程序是用C#创build的桌面应用程序,所以我怀疑那些“在IIS中执行某些操作”的解决scheme将适用。

我会假设这些计算机不是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的用户的权限。