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 ユーティリティでは、 の新しいインスタンスを作成し、 のLocalDBLocalDBインスタンスを開始および停止できます。また、 の管理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 つのインスタンスに接続する必要があるシナリオをサポートするには、インスタンスLocalDBLocalDB共有をサポートします。 インスタンスの所有者は、コンピューター上の他のユーザーに自分のインスタンスへの接続を許可することを選択できます。 の自動インスタンスと名前付きインスタンスの 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 共有インスタンスに接続するには、接続文字列に .\ (ドット + 円記号) を追加して、共有インスタンス用に予約されている名前空間を参照します。 たとえば、 という名前AppDataLocalDB共有インスタンスに接続するには、接続文字列の一部などの(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 アカウントを使用してアクセスできる必要があります。

参照

SqlLocalDB ユーティリティ