LAN 上的 SQL Server 2005 Express - “Servername\Guest”登录失败

LAN 上的 SQL Server 2005 Express - “Servername\Guest”登录失败

在这里发布我的问题是因为我很确定这不是程序问题而是服务器问题。

我正在开发一个 C# 程序,用于访问服务器上的数据库。如果我在 PC(服务器,Server-PC)上运行该程序,它可以正常工作。

将程序复制到通过网络连接到我的电脑的另外两台计算机(但一次只尝试一台),但突然程序无法连接。

在基于 XP 的 PC 上,错误消息为“用户 Server-PC\Guest 登录失败”

在基于 Vista 的 PC 上,错误消息为“用户‘null’登录失败。该用户与受信任的 SQL Server 连接无关。”

这是我的连接代码:

\SQLEXPRESS;Database=GGDBase;Integrated Security=SSPI;Trusted_Connection=true;Persist Security Info=False;

现在,我不太了解 SQL Server 设置、添加用户权限等,但我已经完成了以下工作:

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

我能就此得到一些建议吗?这根本行不通。我还能做什么?感谢所有回答的人。

PS 如果很重要:

  1. 我的服务器正在运行 Windows 7。
  2. 我用来尝试连接的另外两台计算机分别运行 Windows XP (SP3) 和 Vista。它们都连接到网络。是的,它们可以相互共享文件。
  3. 我正在使用 SQL Server 2005 的 EXPRESS 版本。
  4. 我正在开发的程序是一个用 C# 创建的桌面应用程序,因此我怀疑那些“在 IIS 中执行某些操作”的解决方案是否适用。

答案1

我认为这些计算机不是 Windows 域的成员。您尝试使用 Windows 身份验证连接到计算机,但由于没有通用密码存储库(例如 Windows Active Directory 域),因此无法正常工作。

要解决此问题,您需要在 SQL Server 中创建一个登录名,然后授予其在数据库中的权限。为此,请在服务器控制台上使用 Management Studio 连接到 SQL Server。导航到“安全”>“登录名”。右键单击“登录名”,然后从下拉菜单中选择“新登录名”。在新窗口中选择“SQL Server 身份验证”,输入用户名和密码。取消选中所有复选框。转到“用户映射”页面(左侧的白色部分),并授予登录名在数据库中所需的权限。然后将应用程序中的连接字符串更改为我下面显示的内容,将 myUsername 和 myPassword 替换为您在创建登录名时指定的用户名和密码。

\SQLEXPRESS;Database=GGDBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

答案2

尝试在连接字符串中指定一些凭据。它似乎正在尝试以访客帐户身份登录并被拒绝。

为了完成此操作,您可能必须创建一个具有适当权限的新 SQL 帐户。

如果您尝试以其他方式进行身份验证,我会查看您尝试进行身份验证的用户的权限。

相关内容