Delen via


SQL Server Express LocalDB

Van toepassing op:SQL Server

Microsoft SQL Server Express LocalDB is een functie van SQL Server Express die is gericht op ontwikkelaars. Deze is beschikbaar in sql Server Express-editie met Advanced Services.

LocalDB-installatie kopieert een minimale set bestanden die nodig zijn om de SQL Server Database Engine te starten. Zodra LocalDB is geïnstalleerd, kunt u een verbinding initiëren met behulp van een speciale verbindingsreeks. Wanneer u verbinding maakt, wordt de benodigde SQL Server-infrastructuur automatisch gemaakt en gestart, zodat de toepassing de database kan gebruiken zonder complexe configuratietaken. Ontwikkelhulpprogramma's kunnen ontwikkelaars voorzien van een SQL Server Database Engine waarmee ze Transact-SQL code kunnen schrijven en testen zonder dat ze een volledig serverexemplaren van SQL Server hoeven te beheren.

Installatiemedia

LocalDB is een functie die u selecteert tijdens de installatie van SQL Server Express en is beschikbaar wanneer u de media downloadt. Als u de media downloadt, kiest u Express Advanced of het LocalDB-pakket .

Klanten die Visual Studio 2019 en Visual Studio 2022 gebruiken, moeten SQL Server 2019 Express-editie installeren.

Het LocalDB-installatieprogramma SqlLocalDB.msi is beschikbaar op de installatiemedia voor alle edities, met uitzondering van Express Core. Het bevindt zich in de map <installation_media_root>\<LCID>_ENU_LP\x64\Setup\x64. LCID is een landinstellings-id of taalcode. Een LCID-waarde van 1033 verwijst bijvoorbeeld naar de en-US landinstelling.

U kunt LocalDB ook installeren via het Installatieprogramma van Visual Studio, als onderdeel van de workload Voor gegevensopslag en -verwerking , de workload voor ASP.NET en webontwikkeling , of als afzonderlijk onderdeel.

LocalDB installeren

Installeer LocalDB via de installatiewizard of met behulp van het SqlLocalDB.msi programma. LocalDB is een optie bij het installeren van SQL Server Express LocalDB.

Selecteer LocalDB op de pagina Functieselectie/Gedeelde onderdelen tijdens de installatie. Er kan slechts één installatie van de binaire LocalDB-bestanden zijn voor elke primaire versie van SQL Server Database Engine. Meerdere database-engineprocessen kunnen worden gestart en gebruiken allemaal dezelfde binaire bestanden. Een exemplaar van de SQL Server-database-engine die is gestart als localDB heeft dezelfde beperkingen als SQL Server Express.

Een exemplaar van SQL Server Express LocalDB wordt beheerd met behulp van het SqlLocalDB.exe hulpprogramma. SQL Server Express LocalDB moet worden gebruikt in plaats van de sql Server Express-gebruikersinstantiefunctie, die is afgeschaft.

Beschrijving

Het LocalDB-installatieprogramma gebruikt het SqlLocalDB.msi programma om de benodigde bestanden op de computer te installeren. Na de installatie is LocalDB een exemplaar van SQL Server Express waarmee SQL Server-databases kunnen worden gemaakt en geopend. De systeemdatabasebestanden voor de database worden opgeslagen in het lokale AppData pad, dat normaal gesproken verborgen is. Bijvoorbeeld: C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Gebruikersdatabasebestanden worden opgeslagen op de locatie die de gebruiker aangeeft, typisch ergens in de C:\Users\<user>\Documents\ map.

Zie Voor meer informatie over het opnemen van LocalDB in een toepassing Visual Studio Local Data Overview, Create a database and add tables in Visual Studio.

Voor meer informatie over de LocalDB-API, zie SQL Server Express LocalDB-naslaginformatie.

Het SqlLocalDB hulpprogramma kan nieuwe exemplaren van LocalDB maken, een exemplaar van LocalDB starten en stoppen, en bevat opties voor het beheren van LocalDB. Zie sqlLocalDB-hulpprogramma voor meer informatie over het SqlLocalDB hulpprogramma.

De instantiesortering voor LocalDB is ingesteld op SQL_Latin1_General_CP1_CI_AS en kan niet worden gewijzigd. Sorteringen op databaseniveau, kolomniveau en expressieniveau worden normaal ondersteund. Ingesloten databases volgen de metagegevens en tempdb sorteringsregels die zijn gedefinieerd door ingesloten databasesorteringen.

Beperkingen

  • LocalDB kan niet extern worden beheerd via SQL Server Management Studio.

  • LocalDB kan geen abonnee van samenvoegreplicatie zijn.

  • LocalDB biedt geen ondersteuning voor FILESTREAM.

  • LocalDB staat alleen lokale wachtrijen toe voor Service Broker.

  • Een exemplaar van LocalDB dat eigendom is van ingebouwde accounts zoals NT AUTHORITY\SYSTEM, kan problemen hebben met beheerbaarheid vanwege de omleiding van het Windows-bestandssysteem. Gebruik in plaats daarvan een normaal Windows-account als eigenaar.

Automatische en genaamde instanties

LocalDB ondersteunt twee soorten exemplaren: automatische exemplaren en benoemde exemplaren. Verschillende gebruikers van een computer kunnen exemplaren met dezelfde naam hebben. Elke instantie wordt uitgevoerd als de betreffende gebruiker in een eigen proces.

Automatische instanties

Automatische exemplaren van LocalDB zijn openbaar. Ze worden automatisch gemaakt en beheerd voor de gebruiker en kunnen door elke toepassing worden gebruikt. Er bestaat één automatisch exemplaar van LocalDB voor elke versie van LocalDB die op de computer van de gebruiker is geïnstalleerd. Automatische exemplaren van LocalDB bieden naadloos exemplaarbeheer. Het is niet nodig om het exemplaar te maken. Het werkt gewoon. Met deze functie kunt u eenvoudig toepassingen installeren en migreren naar een andere computer. Als op de doelcomputer de opgegeven versie van LocalDB is geïnstalleerd, is het automatische exemplaar van LocalDB voor die versie ook beschikbaar op de doelcomputer. Automatische exemplaren van LocalDB hebben een speciaal patroon voor de exemplaarnaam die deel uitmaakt van een gereserveerde naamruimte. Automatische exemplaren voorkomen naamconflicten met benoemde exemplaren van LocalDB. De naam voor het automatische exemplaar is MSSQLLocalDB.

Benoemde exemplaren

Benoemde exemplaren van LocalDB zijn privé. Ze zijn eigendom van één toepassing die verantwoordelijk is voor het maken en beheren van de instantie. Benoemde exemplaren bieden isolatie van andere exemplaren en kunnen de prestaties verbeteren door resourceconflicten met andere databasegebruikers te verminderen. U moet benoemde exemplaren expliciet maken via de LocalDB-beheer-API of impliciet via het app.config bestand voor een beheerde toepassing (hoewel de beheerde toepassing desgewenst ook de API kan gebruiken). Elke benoemde instantie van LocalDB heeft een gekoppelde LocalDB-versie die verwijst naar de overeenkomstige set van binaire LocalDB-bestanden. De exemplaarnaam van een LocalDB is het gegevenstype Sysname en mag maximaal 128 tekens bevatten. (Deze instantienaam verschilt van gewone benoemde exemplaren van SQL Server, waardoor namen worden beperkt tot gewone NetBIOS-namen van 15 ASCII-tekens.) De naam van een exemplaar van LocalDB kan unicode-tekens bevatten die legaal zijn binnen een bestandsnaam. Een benoemd exemplaar dat gebruikmaakt van een automatische exemplaarnaam wordt een automatisch exemplaar.

Gedeelde exemplaren van LocalDB

LocalDB biedt ondersteuning voor scenario's waarbij meerdere gebruikers van de computer verbinding moeten maken met één exemplaar van LocalDB, localDB ondersteunt het delen van exemplaren. Een exemplaareigenaar kan ervoor kiezen om de andere gebruikers op de computer toe te staan verbinding te maken met het exemplaar. Zowel automatische als benoemde exemplaren van LocalDB kunnen worden gedeeld. Als u een exemplaar van LocalDB wilt delen, selecteert een gebruiker er een gedeelde naam (alias) voor. Omdat de gedeelde naam zichtbaar is voor alle gebruikers van de computer, moet deze gedeelde naam uniek zijn op de computer. De gedeelde naam voor een exemplaar van LocalDB heeft dezelfde indeling als het benoemde exemplaar van LocalDB.

Alleen een beheerder op de computer kan een gedeeld exemplaar van LocalDB maken. Een gedeeld exemplaar van LocalDB kan niet worden gedeeld door een beheerder of door de eigenaar van het gedeelde exemplaar van LocalDB. Als u een exemplaar van LocalDB wilt delen en het delen ervan ongedaan wilt maken, gebruikt u de LocalDBShareInstance en LocalDBUnShareInstance methoden van de LocalDB-API of de opties voor delen en delen van het SqlLocalDB hulpprogramma.

LocalDB starten en verbinding maken met LocalDB

In deze sectie wordt beschreven hoe u verbinding maakt met een automatisch exemplaar, een benoemd exemplaar of een gedeeld exemplaar.

Verbinding maken met de automatische instantie

De eenvoudigste manier om LocalDB te gebruiken, is door verbinding te maken met het automatische exemplaar dat eigendom is van de huidige gebruiker met behulp van de verbindingsreeks Server=(localdb)\MSSQLLocalDB;Integrated Security=true. Als u verbinding wilt maken met een specifieke database met behulp van de bestandsnaam, maakt u verbinding met behulp van een verbindingsreeks die vergelijkbaar is met Server=(LocalDB)\MSSQLLocalDB;Integrated Security=true;AttachDbFileName=D:\Data\MyDB1.mdf.

Opmerking

De eerste keer dat een gebruiker op een computer verbinding probeert te maken met LocalDB, moet het automatische exemplaar worden gemaakt en gestart. De extra tijd die nodig is om het exemplaar aan te maken kan ertoe leiden dat de verbindingspoging mislukt met een time-outbericht. Als dit gebeurt, wacht u een paar seconden om het aanmaakproces te voltooien en maakt u vervolgens opnieuw verbinding.

Een benoemde instantie maken en verbinding ermee maken

Naast het automatische exemplaar ondersteunt LocalDB ook benoemde exemplaren. Gebruik het SqlLocalDB.exe programma om een benoemd exemplaar van LocalDB te maken, te starten en te stoppen. Zie het sqlLocalDB-hulpprogramma voor meer informatieSqlLocalDB.exe.

REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1

De laatste regel in het vorige codevoorbeeld retourneert informatie die vergelijkbaar is met de volgende tabel.

Categorie Waarde
Naam LocalDBApp1
Versie <Current version>
Gedeelde naam ""
Eigenaar <Your Windows user>
Automatisch maken No
Staat Running
Laatste begintijd <Date and time>
Naam van de instantie-pijplijn np:\\.\pipe\LOCALDB#F365A78E\tsql\query

Opmerking

Als uw toepassing een versie van .NET Framework gebruikt vóór 4.0.2, moet u rechtstreeks verbinding maken met de benoemde pijp van de LocalDB. De waarde van de naam van de instantiepijp is de benoemde pipe waarop het exemplaar van LocalDB luistert. Het gedeelte van de instantiepijpnaam na LOCALDB# wordt elke keer gewijzigd wanneer het exemplaar van LocalDB wordt gestart. Als u verbinding wilt maken met het exemplaar van LocalDB met behulp van SQL Server Management Studio, typt u de naam van de instantiepijp in het vak Servernaam van het dialoogvenster Verbinding maken met database-engine . Vanuit uw aangepaste programma kunt u verbinding maken met het exemplaar van LocalDB met behulp van een verbindingsreeks die vergelijkbaar is met SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Verbinding maken met een gedeeld exemplaar van LocalDB

Als u verbinding wilt maken met een gedeeld exemplaar van LocalDB, voegt u (backslash + punt + backslash) toe aan de verbindingsketen om te verwijzen naar de namespace die is gereserveerd voor gedeelde instanties. Als u bijvoorbeeld verbinding wilt maken met een gedeeld exemplaar van LocalDB met de naam AppData, gebruikt u een verbindingsreeks zoals (localdb)\.\AppData. Een gebruiker die verbinding maakt met een gedeeld exemplaar van LocalDB waarvan deze geen eigenaar is, moet een aanmelding voor Windows-verificatie of SQL Server-verificatie hebben.

Problemen oplossen

Zie Bekende sql Server 2012-installatie- en migratieproblemen voor informatie over het oplossen van problemen met LocalDB.

Machtigingen

Een exemplaar van SQL Server Express LocalDB is een exemplaar dat door een gebruiker is gemaakt voor gebruik. Elke gebruiker op de computer kan een database maken met behulp van een exemplaar van LocalDB, bestanden opslaan onder hun gebruikersprofiel en het proces uitvoeren onder hun referenties. Standaard is de toegang tot het exemplaar van LocalDB beperkt tot de eigenaar. De gegevens in de LocalDB worden beveiligd door bestandssysteemtoegang tot de databasebestanden. Als gebruikersdatabasebestanden worden opgeslagen op een gedeelde locatie, kan de database door iedereen met bestandssysteemtoegang tot die locatie worden geopend met behulp van een exemplaar van LocalDB waarvan ze eigenaar zijn. Als de databasebestanden zich op een beveiligde locatie bevinden, zoals de map met gebruikersgegevens, kunnen alleen die gebruiker en beheerders met toegang tot die map de database openen. De LocalDB-bestanden kunnen slechts door één exemplaar van LocalDB tegelijk worden geopend.

LocalDB wordt altijd uitgevoerd onder de beveiligingscontext van de gebruiker. LocalDB wordt nooit uitgevoerd met inloggegevens van de groep van lokale beheerders. Dit betekent dat alle databasebestanden die door een LocalDB-exemplaar worden gebruikt, toegankelijk moeten zijn met het Windows-account van de eigenaar van de gebruiker, zonder dat u rekening hoeft te houden met het lidmaatschap van de lokale groep Administrators.