如何与同一台机器上的其他用户共享SQL LocalDb?

Par*_*are 6 c# sql-server-2012 localdb

我正在寻找使用sqllocaldb命令实用程序的share命令在用户之间访问LocalDb数据库的方法,但是我看不到在另一个用户中创建的数据库.

这是我的步骤:

  1. 在Windows 7上登录用户User1

  2. 使用sqlcmd创建一个名为test的新数据库,如下所示

    sqlcmd -S(localdb)\ v11.0创建数据库测试

  3. 与User2共享实例v11.0,如下所示

    sqllocaldb共享域\ User2 v11.0 myinstance

  4. 切换到用户2

  5. 登录到共享实例,如下所示

    sqlcmd -S(localdb)\.\ myinstance

    从sys.master_files中选择名称

    以上查询不显示测试数据库.

为什么我无法在共享后看到User1中创建的用户2中的数据库?

我认为它必须基于博客(方法2)http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-2-instance- ownership.aspx# Krzysztof Kozielczyk的SharedLocalDB,但事实并非如此.

任何帮助/建议表示赞赏.

谢谢Pare

Mar*_*llo 16

这不起作用的原因是因为你发出了错误的命令.sqllocaldb.exe的使用说明是:

share|h ["owner SID or account"] "private name" "shared name"
Run Code Online (Sandbox Code Playgroud)

基于此,您的第二个命令应该是创建实例的SID或帐户,而不是您要与之共享实例的帐户.共享与计算机上的所有帐户共享实例.

假设您的帐户创建了您要共享的实例,那么您应该发出的命令是:

sqllocaldb share v11.0 myinstance
Run Code Online (Sandbox Code Playgroud)

否则,它应该是:

sqllocaldb share "<account that created the instance>" v11.0 myinstance
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,您还需要确保运行提升的命令窗口,以便可以成功共享它.

  • 我还需要重新启动实例,之后才能通过IIS中的共享名称访问数据库. (2认同)
  • 我会想象`sqllocaldb stop myinstance`然后`sqllocaldb start myinstance`会做到。 (2认同)

w.b*_*ian 4

问题在于 LocalDB 作为当前用户拥有的进程运行,这意味着每个用户都运行自己的 LocalDB 实例。这就是它零配置且非常易于使用的原因。不幸的是,这也意味着很难拥有共享的 LocalDB 实例。我遇到了类似的问题,只是转而使用 SQL Express 作为开发中需要多个用户访问的数据库。