【问题标题】:Different user account authorization on mdf localdbmdf localdb上的不同用户帐户授权
【发布时间】:2019-01-29 10:44:29
【问题描述】:

我有以下问题,我有一个服务在低级别运行并连接到sql server localdb的mdf数据库。但是该服务在连接数据库时使用了不同的帐户'AUTHORITY NT \ SYSTEM',它不会让任何其他高级程序连接到数据库。

反之亦然,如果你有任何高级程序连接到数据库,服务不会连接。

连接字符串:

 way = $"Data Source = (LocalDB)\\v11.0; AttachDbFilename = { MDF}; Integrated Security = True; Connect Timeout = 30 ";

两个账号可以同时连接吗?

【问题讨论】:

  • 是的。首先不要在连接字符串中使用 MDF 文件名。数据库连接到服务器,服务器知道文件的位置。然后对数据库(不是 SQL)使用 Windows 凭据(即 Integrated Security = true)。设置数据库将使用的 Window 用户组帐户。将用户添加到组帐户。远程连接时,请确保组帐户在服务器 PC 和客户端 PC 上。
  • @jdweng 不是很懂,怎么连接字符串中不用mdf这个名字?在我的例子中,MDF 名称是一个字符串,它采用银行所在的路径。我是否必须在 windows 用户 chant 中创建用户 'AUTHORITY NT \ SYSTEM'
  • @stuartd 但是如何在连接上传递 windows 用户帐户?
  • 你没有。您以用户帐户运行服务,并使用 windows 身份验证连接到服务器。
  • 如果它已经与 Integrated Security = True 一起工作,除了从连接字符串中删除 AttachDbFilename 之外,您无需执行任何操作。 mdf 文件是 SQL 中的数据库。因此,您可以在连接字符串中包含默认数据库,或者在 SQL 查询中添加“使用数据库名称”以选择正确的数据库。在 Windows 的用户帐户中,将用户添加到数据库正在使用的同一组中。您不需要 AUTHORITY NT \ SYSTEM 这是更高级别的管理员帐户。只需创建一个普通组帐户并将数据库凭据和用户放在同一组中即可。

标签: c# sql-server service mdf


【解决方案1】:

据我了解,您正试图通过两个同时的 LocalDB 实例(两个不同的应用程序)访问 mdf 文件,但由于该文件已被附加它的第一个实例锁定,因此无法正常工作。

如果您需要多个应用程序连接到您的 DB(mdf),您需要安装一个 SQL Server(Express) 实例并将 mdf 文件作为数据库附加到它。

然后您可以更新连接字符串以使用 SQL Server 实例中的数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    相关资源
    最近更新 更多