Freigeben über


SQL Server 2014 Express LocalDB

Microsoft SQL Server 2014 Express LocalDB ist ein Ausführungsmodus von SQL Server Express für Programmentwickler. LocalDBbei der Installation wird ein minimaler Satz von Dateien kopiert, die zum Starten der SQL Server-Datenbank-Engine erforderlich sind. Nach der LocalDB Installation initiieren Entwickler eine Verbindung mithilfe einer speziellen Verbindungszeichenfolge. Beim Herstellen einer Verbindung wird automatisch die erforderliche SQL Server-Infrastruktur erstellt und gestartet, sodass die Anwendung die Datenbank ohne komplexe oder zeitaufwändige Konfigurationsaufgaben verwenden kann. Mit Developer Tools können Entwickler SQL Server-Datenbank-Engine bereitstellen, womit sie Transact-SQL-Code schreiben und testen können, und zwar ohne dabei eine vollständige Serverinstanz von SQL Serververwalten zu müssen. Eine instance von SQL Server ExpressLocalDB wird mithilfe des SqlLocalDB.exe Hilfsprogramms verwaltet. LocalDB SQL Server Express sollte anstelle des veralteten features instance SQL Server Express Benutzer verwendet werden.

Installieren von LocalDB

Die primäre Methode der Installation LocalDB ist die Verwendung des SqlLocalDB.msi-Programms. LocalDBist eine Option beim Installieren einer SKU von SQL Server 2014 Express. Wählen Sie LocalDB während der Installation von SQL Server Express auf der Seite Featureauswahl aus. Es kann nur eine Installation der LocalDB Binärdateien für jede Hauptversion SQL Server Datenbank-Engine geben. Mehrere Datenbank-Engine -Prozesse können gestartet werden und verwenden dann die gleichen Binärdateien. Eine instance der SQL Server-Datenbank-Engine, die als gestartet wurde, LocalDB weist dieselben Einschränkungen auf wie SQL Server Express

BESCHREIBUNG

Das LocalDB Setupprogramm verwendet das SqlLocalDB.msi Programm, um die erforderlichen Dateien auf dem Computer zu installieren. Nach der Installation LocalDB ist eine instance von SQL Server Express, die SQL Server Datenbanken erstellen und öffnen können. Die Systemdatenbankdateien für die Datenbank werden im lokalen AppData-Pfad des Benutzers gespeichert. Dieser Pfad ist normalerweise verborgen. Beispiel: C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Benutzerdatenbankdateien werden an der vom Benutzer angegebenen Stelle gespeichert, in der Regel irgendwo im Ordner "C:\Benutzer\<Benutzer>\Dokumente\" .

Weitere Informationen zum Einbinden LocalDB in eine Anwendung finden Sie in der Visual Studio-Dokumentation Übersicht über lokale Daten, Exemplarische Vorgehensweise: Erstellen einer SQL Server LocalDB-Datenbank und Exemplarische Vorgehensweise: Herstellen einer Verbindung mit Daten in einer SQL Server LocalDB-Datenbank (Windows Forms).

Weitere Informationen zur LocalDB API finden Sie unter SQL Server Express LocalDB-Instanz-API-Referenz und LocalDBStartInstance-Funktion.

Das SqlLocalDb-Hilfsprogramm kann neue Instanzen von LocalDBerstellen, eine instance von LocalDBstarten und beenden und enthält Optionen, mit denen Sie verwalten LocalDBkönnen. Weitere Informationen zum Hilfsprogramm von SqlLocalDb finden Sie unter SqlLocalDB-Hilfsprogramm.

Die instance Sortierung für LocalDB ist auf SQL_Latin1_General_CP1_CI_AS festgelegt und kann nicht geändert werden. Auf Datenbankebene, Spaltenebene und Ausdrucksebene werden Sortierungen normal unterstützt. Eigenständige Datenbanken basieren auf den Metadaten- und tempdb-Sortierungsregeln unter Contained Database Collations.

Beschränkungen

LocalDB kann kein Mergereplikationsabonnent sein.

LocalDB unterstützt FILESTREAM nicht.

LocalDB lässt nur lokale Warteschlangen für Service Broker zu.

Eine instance, die sich im Besitz der integrierten Konten befindet, z. B. NT AUTHORITY\SYSTEM, kann aufgrund der LocalDB Windows-Dateisystemumleitung Verwaltbarkeitsprobleme haben. Verwenden Sie stattdessen ein normales Windows-Konto als Besitzer.

Automatisch und benannte Instanzen

LocalDB unterstützt zwei Arten von Instanzen: Automatische Instanzen und benannte Instanzen.

  • Automatische Instanzen von LocalDB sind öffentlich. Sie werden erstellt und automatisch für den Benutzer verwaltet. Sie können von allen Anwendungen verwendet werden. Eine automatische instance von LocalDB ist für jede Version von LocalDB vorhanden, die auf dem Computer des Benutzers installiert ist. Automatische Instanzen von LocalDB bieten eine nahtlose instance Verwaltung. Es ist nicht nötig, eine Instanz zu stellen, da es auch so funktioniert. Dies ermöglicht einfache Anwendungsinstallationen und eine Migration zu einem anderen Computer. Wenn auf dem Zielcomputer die angegebene Version von LocalDB installiert ist, ist die automatische Instanz von LocalDB für diese Version auch auf dem Zielcomputer verfügbar. Automatische Instanzen von LocalDB weisen ein spezielles Muster für den instance Namen auf, der zu einem reservierten Namespace gehört. Dadurch werden Namenskonflikte mit benannten Instanzen von LocalDBverhindert. Der Name der automatischen Instanz ist MSSQLLocalDB.

  • Benannte Instanzen von LocalDB sind privat. Diese gehören einer Einzelanwendung, die für das Erstellen und Verwalten der Instanz zuständig ist. Benannte Instanzen sind zum Teil von anderen Instanzen isoliert und können durch die Reduzierung von Ressourcenkonflikten, die mit anderen Datenbankbenutzern auftreten können, die Leistung verbessern. Benannte Instanzen müssen explizit vom Benutzer über die Verwaltungs-API oder implizit über die LocalDB app.config-Datei für eine verwaltete Anwendung erstellt werden (obwohl die verwaltete Anwendung bei Bedarf auch die API verwenden kann). Jede benannte instance von LocalDB verfügt über eine zugeordnete LocalDB Version, die auf den entsprechenden Satz von LocalDB Binärdateien verweist. Der instance Name eines LocalDB ist sysname der Datentyp und kann bis zu 128 Zeichen umfassen. (Dies unterscheidet sich von regulären benannten Instanzen von SQL Server, die Namen auf reguläre NetBIOS-Namen mit 16 ASCII-Zeichen beschränkt.) Der Name einer instance von LocalDB kann alle Unicode-Zeichen enthalten, die innerhalb eines Dateinamens zulässig sind. Eine benannte Instanz, die einen automatischen Instanznamen verwendet, wird eine automatische Instanz.

Unterschiedliche Benutzer eines Computers können über Instanzen mit dem gleichen Namen verfügen. Jede Instanz ist ein anderer Prozess, der als ein anderer Benutzer ausgeführt wird.

Freigegebene Instanzen von LocalDB

Um Szenarien zu unterstützen, in denen mehrere Benutzer des Computers eine Verbindung mit einer einzelnen instance von LocalDBherstellen müssen, LocalDB unterstützt instance Freigabe. Ein Instanzbesitzer kann auswählen, anderen Benutzern auf dem Computer zu ermöglichen, eine Verbindung mit seiner Instanz herzustellen. Sowohl automatische als auch benannte Instanzen von LocalDB können freigegeben werden. Zum Freigeben einer Instanz von LocalDB müssen Benutzer einen freigegebenen Namen (Alias) dafür auswählen. Da der freigegebene Name für Benutzer des Computers sichtbar ist, muss dieser freigegebene Name auf dem Computer eindeutig sein. Der freigegebene Name für eine instance von LocalDB hat das gleiche Format wie der benannte instance von LocalDB.

Nur ein Administrator auf dem Computer kann eine freigegebene instance von LocalDBerstellen. Eine freigegebene instance von LocalDB kann von einem Administrator oder vom Besitzer der freigegebenen instance von LocalDBaufgehoben werden. Um eine instance von LocalDBfreigeben und aufheben zu können, verwenden Sie die LocalDBShareInstance Methoden und LocalDBUnShareInstance der LocalDB API oder die Freigabe- und nicht freigegebenen Optionen des SqlLocalDb-Hilfsprogramms.

Starten von LocalDB und Herstellen einer Verbindung zu LocalDB

Herstellen einer Verbindung zur automatischen Instanz

Die einfachste Möglichkeit besteht LocalDB darin, mithilfe der Verbindungszeichenfolge "Server=(localdb)\MSSQLLocalDB;Integrated Security=true" eine Verbindung mit dem automatischen instance herzustellen, der sich im Besitz des aktuellen Benutzers befindet. Verwenden Sie eine Verbindungszeichenfolge ähnlich "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf", um eine Verbindung mit einer bestimmten Datenbank mit dem Dateinamen herzustellen.

Hinweis

Wenn ein Benutzer auf einem Computer zum ersten Mal versucht, eine Verbindung mit herzustellenLocalDB, muss die automatische instance sowohl erstellt als auch gestartet werden. Die zusätzliche Zeit, die für das Erstellen der Instanz benötigt wird, kann dazu führen, dass der Verbindungsversuch abgebrochen und eine Timeoutmeldung ausgegeben wird. Warten Sie in diesem Fall einige Sekunden, bis der Erstellungsvorgang vollständig abgeschlossen ist, und stellen Sie dann erneut eine Verbindung her.

Erstellen einer benannten Instanz und Herstellen einer Verbindung

Zusätzlich zum automatischen instance LocalDB werden auch benannte Instanzen unterstützt. Verwenden Sie das SqlLocalDB.exe Programm, um eine benannte instance von LocalDBzu erstellen, zu starten und zu beenden. Weitere Informationen zu SqlLocalDB.exe finden Sie unter SqlLocalDB-Hilfsprogramm.

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  

Die letzte Zeile oben gibt Informationen ähnlich der folgenden zurück.

Name "LocalDBApp1"
Version <Aktuelle Version>
Freigegebener Name ""
Besitzer „<Ihr Windows-Benutzerkonto>“
Automatisch erstellen Nein
State „Wird ausgeführt“
Letzte Startzeit <Datum und Uhrzeit>
Instanz-Pipename np:\\.\pipe\LOCALDB#F365A78E\tsql\query

Hinweis

Wenn Ihre Anwendung eine .NET-Version vor 4.0.2 verwendet, müssen Sie direkt eine Verbindung mit der Named Pipe von herstellen LocalDB. Der Wert des Instanzpipenamens ist die Benannte Pipe, an der der instance lauschtLocalDB. Der Teil des Instanzpipenamens nach LOCALDB# ändert sich jedes Mal, wenn die instance von LocalDB gestartet wird. Um mithilfe von SQL Server Management Studio eine Verbindung mit dem instance von LocalDB herzustellen, geben Sie den Namen der Instanzpipe im Feld Servername des Dialogfelds Verbindung mit Datenbank-Engine herstellen ein. Über Ihr benutzerdefiniertes Programm können Sie eine Verbindung mit dem instance herstellenLocalDB, eine Verbindungszeichenfolge ähnlich wieSqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Herstellen einer Verbindung mit einer freigegebenen Instanz von LocalDB

Um eine Verbindung mit einem freigegebenen instance von LocalDB herzustellen, fügen Sie der Verbindungszeichenfolge .\ (Punkt + umgekehrter Schrägstrich) hinzu, um auf den namespace zu verweisen, der für freigegebene Instanzen reserviert ist. Um z. B. eine Verbindung mit einer freigegebenen instance von LocalDB benannt AppData zu stellen, verwenden Sie eine Verbindungszeichenfolge, z(localdb)\.\AppData. B. als Teil der Verbindungszeichenfolge. Ein Benutzer, der eine Verbindung mit einer freigegebenen instance herstellt, die LocalDB er nicht besitzt, muss über eine Windows-Authentifizierungs- oder SQL Server-Authentifizierungsanmeldung verfügen.

Problembehandlung

Informationen zur Problembehandlung LocalDBfinden Sie unter Problembehandlung SQL Server 2012 Express LocalDB.

Berechtigungen

Ein instance von SQL Server 2014 ExpressLocalDB ist eine instance, die von einem Benutzer für seine Verwendung erstellt wurde. Jeder Benutzer auf dem Computer kann eine Datenbank mit einer instance von LocalDBerstellen, Dateien unter dem Benutzerprofil speichern und den Prozess unter seinen Anmeldeinformationen ausführen. Standardmäßig ist der Zugriff auf die instance von LocalDB auf den Besitzer beschränkt. Die in LocalDB enthaltenen Daten werden durch den Dateisystemzugriff auf die Datenbankdateien geschützt. Wenn Benutzerdatenbankdateien an einem freigegebenen Speicherort gespeichert werden, kann die Datenbank von allen Benutzern mit Dateisystemzugriff auf diesen Speicherort mithilfe einer instance geöffnet werden, die LocalDB sie besitzen. Wenn die Datenbankdateien sich an einem geschützten Speicherort befinden, z. B. dem Datenordner des Benutzers, können nur dieser Benutzer und Administratoren mit Zugriffsrechten für diesen Ordner die Datenbank öffnen. Die LocalDB Dateien können jeweils nur von einem instance geöffnet LocalDB werden.

Hinweis

LocalDB wird immer im Benutzersicherheitskontext ausgeführt; d. h. LocalDB wird niemals mit Anmeldeinformationen aus der lokalen Administratorgruppe ausgeführt. Dies bedeutet, dass auf alle Datenbankdateien, die von einem LocalDB instance verwendet werden, über das Windows-Konto des besitzenden Benutzers zugegriffen werden muss, ohne die Mitgliedschaft in der lokalen Administratorgruppe in Betracht zu ziehen.

Weitere Informationen

SqlLocalDB-Hilfsprogramm