SQL Server 2014 Express LocalDB
Microsoft SQL Server 2014 Express LocalDB
は、プログラム開発者を対象とするSQL Server Expressの実行モードです。 LocalDB
インストールでは、SQL Server データベース エンジンを起動するために必要な最小限のファイル セットがコピーされます。 インストールが完了すると LocalDB
、開発者は特別な接続文字列を使用して接続を開始します。 接続すると、必要なSQL Server インフラストラクチャが自動的に作成され、開始され、複雑な構成タスクや時間のかかる構成タスクなしでアプリケーションでデータベースを使用できるようになります。 開発者ツールによって、開発者は SQL Server データベース エンジンを使用して Transact-SQL コードを記述してテストすることができ、SQL Server の完全なサーバー インスタンスを管理する必要はありません。 SQL Server ExpressLocalDB
のインスタンスは、 ユーティリティを使用SqlLocalDB.exe
して管理されます。 LocalDB
SQL Server Expressは、非推奨のSQL Server Expressユーザー インスタンス機能の代わりに使用する必要があります。
LocalDB のインストール
インストールの主な LocalDB
方法は、SqlLocalDB.msi プログラムを使用することです。 LocalDB
は、SQL Server 2014 Express のいずれかの SKU をインストールする場合のオプションです。 SQL Server Expressのインストール中に、[機能の選択] ページを選択LocalDB
します。 データベース エンジンのメジャー バージョンごとに、バイナリ ファイルのLocalDB
インストールは 1 つだけSQL Server。 複数の データベース エンジン プロセスを開始することができ、すべてのプロセスが使用するバイナリは同じです。 として開始LocalDB
されたSQL Server データベース エンジンのインスタンスには、SQL Server Expressと同じ制限があります
説明
セットアップ プログラムは LocalDB
、SqlLocalDB.msi プログラムを使用して、必要なファイルをコンピューターにインストールします。 をインストールすると、 LocalDB
は、SQL Server データベースを作成して開くことができるSQL Server Expressのインスタンスです。 データベースのシステム データベース ファイルは、通常は非表示になっているユーザーのローカル AppData パスに格納されます。 たとえば、C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\ などです。 ユーザー データベース ファイルは、ユーザーが指定する場所 (通常は C:\Users\user>\<Documents\ フォルダーのどこか) に格納されます。
アプリケーションへの インクルードLocalDB
の詳細については、Visual Studio のドキュメント「ローカル データの概要」、「チュートリアル: SQL Server LocalDB データベースの作成」、「チュートリアル: SQL Server LocalDB データベース内のデータへの接続 (Windows フォーム)」を参照してください。
API の詳細LocalDB
については、「SQL Server Express LocalDB インスタンス API リファレンス」および「LocalDBStartInstance 関数」を参照してください。
SqlLocalDb ユーティリティでは、 の新しいインスタンスを作成し、 のLocalDB
LocalDB
インスタンスを開始および停止できます。また、 の管理LocalDB
に役立つオプションが含まれています。 SqlLocalDb ユーティリティの詳細については、「 SqlLocalDB ユーティリティ」を参照してください。
の LocalDB
インスタンス照合順序は SQL_Latin1_General_CP1_CI_AS に設定されており、変更できません。 データベース レベル、列レベル、および式レベルの照合順序は正常にサポートされます。 包含データベースは、 Contained Database Collationsによって定義されたメタデータおよび tempdb の照合順序ルールに従います。
制限
LocalDB
マージ レプリケーション サブスクライバーにすることはできません。
LocalDB
は FILESTREAM をサポートしていません。
LocalDB
では、Service Broker のローカル キューのみが許可されます。
NT AUTHORITY\SYSTEM などの組み込みアカウントが所有する のインスタンス LocalDB
には、Windows ファイル システムのリダイレクトが原因で管理性の問題が発生する可能性があります。代わりに、所有者として通常の Windows アカウントを使用します。
自動インスタンスと名前付きインスタンス
LocalDB
では、自動インスタンスと名前付きインスタンスの 2 種類のインスタンスがサポートされています。
の
LocalDB
自動インスタンスはパブリックです。 ユーザーのために自動的に作成および管理され、任意のアプリケーションから使用できます。 の自動インスタンスLocalDB
は、ユーザーのコンピューターにインストールされているすべてのバージョンLocalDB
に対して 1 つ存在します。 のLocalDB
自動インスタンスは、シームレスなインスタンス管理を提供します。 インスタンスを作成する必要はありません。それだけで動作します。 これにより、アプリケーションのインストールと別のコンピューターへの移行が簡単になります。 対象コンピューターに指定バージョンのLocalDB
がインストールされている場合、その対象コンピューターでも同じバージョンのLocalDB
の自動インスタンスを使用できます。 のLocalDB
自動インスタンスには、予約済み名前空間に属するインスタンス名の特別なパターンがあります。 これにより、 の名前付きインスタンスとの名前の競合がLocalDB
防止されます。 自動インスタンスの名前は MSSQLLocalDBです。の
LocalDB
名前付きインスタンスはプライベートです。 これらは、そのインスタンスの作成と管理を行う単一のアプリケーションによって所有されます。 名前付きインスタンスは他のインスタンスからの分離を可能にし、他のデータベース ユーザーとのリソースの競合を減らすことによってパフォーマンスを向上させることができます。 名前付きインスタンスは、管理 API を介してLocalDB
ユーザーが明示的に作成するか、マネージド アプリケーションのapp.config ファイルを介して暗黙的に作成する必要があります (ただし、必要に応じて、マネージド アプリケーションでも API を使用できます)。 のLocalDB
各名前付きインスタンスには、それぞれのバイナリ セットLocalDB
を指すバージョンが関連付けられていますLocalDB
。 のLocalDB
インスタンス名はsysname
データ型であり、最大 128 文字を使用できます。 (これは、名前を 16 ASCII 文字の通常の NetBIOS 名に制限する、SQL Serverの通常の名前付きインスタンスとは異なります)。のインスタンスLocalDB
の名前には、ファイル名内で有効な任意の Unicode 文字を含めることができます。 自動インスタンス名を使用する名前付きインスタンスは、自動インスタンスになります。
コンピューターの異なるユーザーが同じ名前のインスタンスを持つことができます。 各インスタンスは、別のユーザーとして実行している別のプロセスです。
LocalDB の共有インスタンス
コンピューターの複数のユーザーが の 1 つのインスタンスに接続する必要があるシナリオをサポートするには、インスタンスLocalDB
LocalDB
共有をサポートします。 インスタンスの所有者は、コンピューター上の他のユーザーに自分のインスタンスへの接続を許可することを選択できます。 の自動インスタンスと名前付きインスタンスの LocalDB
両方を共有できます。 LocalDB
のインスタンスを共有するには、ユーザーがその共有名 (別名) を選択します。 共有名はコンピューターのすべてのユーザーから参照できるため、この共有名はコンピューター上で一意である必要があります。 のインスタンスの LocalDB
共有名の形式は、 の名前付きインスタンス LocalDB
と同じです。
の共有インスタンスを作成できるのは、コンピューターの LocalDB
管理者だけです。 の共有インスタンス LocalDB
は、管理者または の共有インスタンス LocalDB
の所有者によって共有解除できます。 の LocalDB
インスタンスを共有および共有解除するには、API の LocalDBShareInstance
メソッドと LocalDBUnShareInstance
メソッド LocalDB
、または SqlLocalDb ユーティリティの共有オプションと非共有オプションを使用します。
LocalDB の起動および LocalDB への接続
自動インスタンスへの接続
使用する LocalDB
最も簡単な方法は、接続文字列 "Server=(localdb)\MSSQLLocalDB;Integrated Security=true" を使用して、現在のユーザーが所有する自動インスタンスに接続することです。 ファイル名を使用して特定のデータベースに接続するには、 "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf"のような接続文字列を使用して接続します。
Note
コンピューター上のユーザーが初めて に LocalDB
接続しようとするときは、自動インスタンスを作成して起動する必要があります。 インスタンスの作成に時間がかかり、接続がタイムアウト メッセージで失敗する可能性があります。 この場合は、作成プロセスが完了するまで数秒待ってから再び接続します。
名前付きインスタンスの作成および接続
自動インスタンスに加えて、 LocalDB
では名前付きインスタンスもサポートされます。 SqlLocalDB.exe プログラムを使用して、 の名前付きインスタンス LocalDB
を作成、開始、および停止します。 SqlLocalDB.exe の詳細については、「 SqlLocalDB ユーティリティ」を参照してください。
REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1
上記の最後の行によって、次のような情報が返されます。
名前 | "LocalDBApp1" |
Version | <現在のバージョン> |
共有名 | "" |
所有者 | "<Windows ユーザー>" |
自動作成 | いいえ |
State | 実行中 |
前回の開始時刻 | <日付と時刻> |
インスタンス パイプ名 | np:\\.\pipe\LOCALDB#F365A78E\tsql\query |
Note
アプリケーションで 4.0.2 より前のバージョンの .NET を使用している場合は、 の LocalDB
名前付きパイプに直接接続する必要があります。 インスタンス パイプ名の値は、 のインスタンス LocalDB
がリッスンしている名前付きパイプです。 LOCALDB# の後のインスタンス パイプ名の部分は、 の LocalDB
インスタンスが開始されるたびに変更されます。 SQL Server Management Studioを使用して のLocalDB
インスタンスに接続するには、[データベース エンジンへの接続] ダイアログ ボックスの [サーバー名] ボックスにインスタンス パイプ名を入力します。 カスタム プログラムから、 のような接続文字列を使用して の LocalDB
インスタンスへの接続を確立できます。 SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");
LocalDB の共有インスタンスへの接続
の LocalDB
共有インスタンスに接続するには、接続文字列に .\ (ドット + 円記号) を追加して、共有インスタンス用に予約されている名前空間を参照します。 たとえば、 という名前AppData
のLocalDB
共有インスタンスに接続するには、接続文字列の一部などの(localdb)\.\AppData
接続文字列を使用します。 所有していない のLocalDB
共有インスタンスに接続しているユーザーは、Windows 認証または認証ログインをSQL Serverする必要があります。
トラブルシューティング
のLocalDB
トラブルシューティングの詳細については、「トラブルシューティング SQL Server 2012 Express LocalDB」を参照してください。
アクセス許可
SQL Server 2014 ExpressLocalDB
のインスタンスは、ユーザーが使用するために作成したインスタンスです。 コンピューター上の任意のユーザーは、 の LocalDB
インスタンスを使用してデータベースを作成し、ユーザー プロファイルの下にファイルを格納し、資格情報でプロセスを実行できます。 既定では、 の LocalDB
インスタンスへのアクセスは、その所有者に制限されます。 に LocalDB
含まれるデータは、データベース ファイルへのファイル システム アクセスによって保護されます。 ユーザー データベース ファイルが共有の場所に格納されている場合は、所有している のインスタンス LocalDB
を使用して、その場所へのファイル システム アクセス権を持つすべてのユーザーがデータベースを開くことができます。 データベース ファイルがユーザー データ フォルダーなどの保護された場所に格納されている場合は、そのユーザーおよびそのフォルダーにアクセスできる管理者だけがデータベースを開くことができます。 ファイルは LocalDB
、一度に 1 つの インスタンス LocalDB
でのみ開くことができます。
Note
LocalDB
常にユーザーのセキュリティ コンテキストの下で実行されます。つまり、 LocalDB
ローカル管理者のグループからの資格情報を使用して実行されることはありません。 つまり、インスタンスで LocalDB
使用されるすべてのデータベース ファイルには、ローカルの Administrators グループのメンバーシップを考慮せずに、所有するユーザーの Windows アカウントを使用してアクセスできる必要があります。