デスクトップアプリケーションに新しいSQL Server Express LocalDB(「Denali」という名前のコードだと思います)の使用を検討しています。
現在SQL Compactで実行されていますが、ユーザーはネットワーク上の複数のPC間でデータベースを共有したいと考えています。残念ながら、これはSQL Compactでできることではないので、他のソリューションを調査しています。
クライアントは、データベースファイルを他のサイトに簡単に送信したり、それらをフラッシュディスクにバックアップしたりする機能を必要とします。したがって、バックアップと復元に必要な「管理者」の知識がかなりあるため、SQL Expressへの移動は避けています。
だから、私の質問は、新しいSQL Express LocalDBは、ネットワークを介して、またはmdfファイルが含まれている共有ネットワークフォルダーを介して、データベースへのリモート接続をサポートするのですか?
LocalDBは、接続文字列(AttachDbFileName)で接続されたローカルDBへのパスを提供することをサポートしているため、共有ネットワークフォルダーオプションです。
注:この質問は、SQL Server Express 2008以前ではなく、新しいバージョンのSQL Express 'Denali'の "LocalDB"に関係します。 LocalDBのリリースを発表したこちらの記事を参照してください。 http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx
いいえ、SQL Server Express LocalDBはリモート接続を受け入れません。
共有ネットワークフォルダーのアイデアは機能する可能性がありますが、ファイルをコピーする前にLocalDBインスタンスがシャットダウンされていることを確認できる場合のみです。また、特定のデータベースファイルを同時に開くことができるのは1つのLocalDBインスタンスのみであることにも注意してください。そして、ログファイルを忘れないでください!
追加のセキュリティ警告:SQL Server Compactデータベースとは異なり、SQL Server Expressデータベース(LocalDBデータベースを含む)は安全なデータ交換形式として設計されていません。たとえば、.NETアセンブリに埋め込まれた悪意のあるコードが含まれている可能性があります。したがって、信頼できないソースからデータベースを開くことはできません。
おそらく、バックアッププロセスを自動化するシンプルなツールを顧客に提供する方が良いでしょうか?
これは新鮮なスレッドではありませんが、SQL Server ExpressデータベースLocalDBでの経験を共有したいと思います。
LocalDb EngineでSQLデータベースを使用するWPF C#プロジェクトがあります。問題なく動作しており、データベースにアクセスできます。このプログラムをもっと多くのPCでネットワーク上で動作させたいと思っていました。ネットワーク上の私のシナリオでは、別のPCが私のPCからデータベースを使用できます(接続文字列でUNCパスを使用)。
リモート接続が機能しているように見えました。しかし、リモートPCが接続されていると、データベースに接続できませんでした。最初に接続した場合、リモートPCは接続できませんでした。したがって、これはリモート接続は機能しているが、複数接続は許可されていないことを示しています。
OK、あきらめずにPCからプログラムを2回実行したところ、同じSQL LocalDBエンジンが複数回接続できることを示すプログラムが機能していることがわかりました。
この経験が誰かのお役に立てば幸いです。ありがとう。