【问题标题】:Authentication: Microsoft SQL Server Database File (SqlClient)身份验证:Microsoft SQL Server 数据库文件 (SqlClient)
【发布时间】:2020-04-27 16:13:57
【问题描述】:

我一直使用“(LocalDB)\MSSQLLocalDB”作为我的数据库,因为我不懂SQL命令,所以我使用“Linq to SQL Classes”来连接数据库和表。

现在问题来了,我只是使用“Linq to SQL”连接到数据库,并且“(LocalDB)\MSSQLLocalDB”身份验证设置为“Windows 身份验证”,因此,我无法运行在另一台 PC 上的应用程序。它会给我这个错误:

无法打开登录请求的数据库“C:\USERS\******.MDF”。登录失败。
用户 'blah\blah' 登录失败

我尝试将身份验证模式更改为“SQL Server 身份验证”,但它不接受任何用户名密码并会显示此错误:

尝试附加到数据库失败,并显示以下信息:用户“blah”登录失败。

我应该怎么做才能在其他PC上运行我的应用程序而不用担心身份验证,我可以完全删除身份验证吗?

【问题讨论】:

  • 您是在尝试将数据库与应用程序一起部署到另一台 PC,还是尝试将您的 PC 用作联网服务器(您的 PC 上的数据库,另一台 PC 上的应用程序)?
  • 第一个,我只是处理应用程序和(mdf,ldf)文件。
  • 顺便说一下,我正在使用 SQL SERVER EXPRESS
  • 您已经确认他们的服务器上有 SQL server Express,并且数据库已经挂载?
  • 是的,实际上它是一个 VPS,我是在两台 PC 上安装“SQL server express”的人。当数据库为空时,它可以在任何 PC 上运行,但是当它被填充到一个系统中时,它只能在该特定 PC 上运行。据我所知,我必须使用“SQL Server 对象资源管理器”添加一个用户并使用它而不是“Windows 身份验证”对吗?

标签: c# sql-server linq localdb


【解决方案1】:

使用您计算机的实际机器名称代替“(LocalDb)”。从错误消息中可以看出,它正在另一台计算机上查找本地 SQL Server 引擎的副本,但没有找到。

使用服务器名称而不是 LocalDb 将使其查找另一台计算机的 SQL Server 副本并在那里连接。

【讨论】:

  • 感谢您的回复,但看起来它找到了数据库,但由于身份验证无法连接到它:{错误:与服务器建立连接成功,但随后出现错误在登录过程中发生。}
  • 您使用的是本地 Windows 帐户还是域帐户?如果是本地的,那么两台机器上需要存在相同的用户和密码才能使 Windows Auth 正常工作。
  • 我使用的是本地用户。谢谢老哥,我也考虑一下。
【解决方案2】:

您只需确保两台计算机上的 windows 帐户是同一组的成员,并且该组具有适当的权限。例如,如果两个帐户都是本地管理员,那么您可以使用该组

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 2016-11-28
    相关资源
    最近更新 更多