我正在寻找使用sqllocaldb命令实用程序的share命令在用户之间访问LocalDb数据库的方法,但是我看不到在另一个用户中创建的数据库。
以下是我的步骤:
在Windows 7上登录用户User1
使用sqlcmd创建一个名为test的新数据库,如下所示
sqlcmd -S(localdb)\ v11.0 创建数据库测试
使用User2
按如下方式共享实例v11.0sqllocaldb共享域\ User2 v11.0 myinstance
切换到用户2
按如下方式登录共享实例
sqlcmd -S(localdb)\。\ myinstance
从sys.master_files中选择名称
上述查询未显示测试数据库。
为什么我无法在共享后看到User1中创建的用户2中的数据库?
我认为它必须基于Krzysztof Kozielczyk的博客(方法2)http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-2-instance-ownership.aspx#SharedLocalDB,但事实并非如此。
感谢任何帮助/建议。
由于 削
答案 0 :(得分:15)
这不起作用的原因是因为你发出了错误的命令。 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
在任何一种情况下,您还需要确保运行提升的命令窗口,以便可以成功共享它。
答案 1 :(得分:3)
问题是LocalDB作为当前用户拥有的进程运行,这意味着每个用户都运行自己的LocalDB实例。这就是使其零配置并且非常容易使用的原因。不幸的是,这也意味着很难拥有共享的LocalDB实例。我遇到了类似的问题,只是转而使用SQL Express作为我需要在开发中被多个用户访问的数据库。