9

sqllocaldb コマンド ユーティリティの share コマンドを使用して、ユーザー間で LocalDb データベースにアクセスする方法を探していますが、あるユーザーで作成されたデータベースが別のユーザーで表示されません。

私の手順は次のとおりです。

  1. Windows 7 でユーザー User1 にログインします。

  2. 次のように、sqlcmd を使用して test という名前の新しいデータベースを作成します。

    sqlcmd -S (localdb)\v11.0 データベース作成テスト

  3. インスタンス v11.0 を次のように User2 と共有します

    sqllocaldb 共有 domain\User2 v11.0 myinstance

  4. ユーザー 2 に切り替える

  5. 次のように共有インスタンスにログインします

    sqlcmd -S (localdb)\.\myinstance

    sys.master_files から名前を選択

    上記のクエリは、テスト データベースを表示しません。

共有後に User1 で作成された User 2 のデータベースを表示できないのはなぜですか?

ブログに基づいて動作するはずだと思いました (アプローチ 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"

これに基づいて、2 番目のコマンドは、インスタンスを共有するアカウントではなく、インスタンスを作成した 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 に答える