9

我正在寻找使用 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 中选择名称

    上面的查询不显示测试数据库。

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

我认为它必须基于博客(方法2)http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-2-instance- Krzysztof Kozielczyk 的所有权.aspx#SharedLocalDB但它没有。

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

谢谢 削价

4

2 回答 2

19

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

share|h ["owner SID or account"] "private name" "shared name"

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

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

sqllocaldb share v11.0 myinstance

否则,它应该是:

sqllocaldb share "<account that created the instance>" v11.0 myinstance

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

于 2014-03-19T12:40:39.790 回答
3

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

于 2013-04-10T21:47:06.373 回答