C# 如何与同一台计算机上的其他用户共享SQL LocalDb?

C# 如何与同一台计算机上的其他用户共享SQL LocalDb?,c#,sql-server-2012,localdb,C#,Sql Server 2012,Localdb,我正在寻找使用sqllocaldb命令实用程序的share命令在用户之间访问LocalDb数据库的方法,但我无法在另一个用户中看到在一个用户中创建的数据库 以下是我的步骤: 在Windows 7上登录到用户User1 使用sqlcmd创建一个名为test的新数据库,如下所示 sqlcmd-S(localdb)\v11.0 创建数据库测试 与User2共享实例v11.0,如下所示 sqllocaldb共享域\User2 v11.0 myinstance 切换到用户2 按如下方式登录到共享实例 sq

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

以下是我的步骤:

  • 在Windows 7上登录到用户User1

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

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

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

    sqllocaldb共享域\User2 v11.0 myinstance

  • 切换到用户2

  • 按如下方式登录到共享实例

    sqlcmd-S(localdb)\.\myinstance

    从sys.master\u文件中选择名称

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

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

    我认为它必须基于Krzysztof Kozielczyk的博客(方法2)工作,但事实并非如此

    欢迎提供任何帮助/建议

    谢谢
    Pare

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

    这不起作用的原因是您发出了错误的命令。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
    
    sqllocaldb共享”v11.0 myinstance
    

    在这两种情况下,您还需要确保您正在运行提升的命令窗口,以便能够成功共享该窗口。

    谢谢您的回复。但“股票”期权确实是一种误导。不是吗?我将其标记为answer,因为您遇到了相同的问题,并且无法通过“共享”从其他用户访问SQL LocalDb。我还需要重新启动实例,只有在这之后,才能通过共享名称从IIS访问数据库。您是如何重新启动实例的?我可以想象
    sqllocaldb stop myinstance
    然后
    sqllocaldb start myinstance
    会这样做。工作原理与解释完全相同。好东西!!谢谢