LocalDB a lokální vývoj se SqlClient

Stáhnout ADO.NET

SQL Server Express LocalDB je lehký engine pro SQL Server pro lokální vývoj pro Windows. Běží pod vaší uživatelskou identitou Windows a spouští se na vyžádání. LocalDB není vzdálená databázová služba a neběží na Linuxu ani macOS.

Pro multiplatformní vývoj použijte podporovaný SQL Server kontejner nebo vzdálený SQL endpoint. Instalace balíčku Microsoft.Data.SqlClient NuGet instaluje ovladač klienta, ne LocalDB.

Nainstalujte LocalDB

Nainstalujte LocalDB prostřednictvím instalace SQL Server Express nebo Instalačního programu Visual Studia. Ve Visual Studio vyberte vhodné pracovní zatížení pro vývoj dat nebo jednotlivou komponentu SQL Server Express LocalDB. Aktuální stažení a instalační možnosti najdete v SQL Server Express LocalDB installation.

Instalace LocalDB obsahuje databázový stroj SQLUserInstance.dll a nástroj pro správu SqlLocalDB.exe. Pokud SqlLocalDB není na PATH, spusťte jej z adresáře nainstalovaných nástrojů SQL Server.

Uveďte své instalované verze a instance:

SqlLocalDB versions
SqlLocalDB info

Připojte se k automatické instanci

Automatická instance je pojmenována MSSQLLocalDB a patří aktuálnímu uživateli Windows. Používejte integrovanou autentizaci ve Windows. LocalDB nepodporuje autentizaci Microsoft Entra.

Pro .NET konzolovou aplikaci s nainstalovaným Microsoft.Data.SqlClient:

using Microsoft.Data.SqlClient;

string connectionString =
    @"Server=(localdb)\MSSQLLocalDB;Database=master;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;";

using var connection = new SqlConnection(connectionString);
await connection.OpenAsync();
using var command = new SqlCommand("SELECT DB_NAME();", connection);
Console.WriteLine(await command.ExecuteScalarAsync());

Dotaz vypíše master. První spojení může trvat déle, protože LocalDB instanci vytvoří nebo spustí. Pokud spuštění překročí časový limit připojení, zkontrolujte stav instance, počkejte na dokončení spuštění a zkuste to znovu.

Tento příklad povoluje certifikát pro místní vývoj s použitím TrustServerCertificate=true. Tuto výjimku ponechte pouze v oblasti místního rozvoje. Pro vzdálený SQL endpoint použijte ověřitelný certifikát a TrustServerCertificate=false; viz Šifrování a validace certifikátů.

Zpětné lomítka v spojovacích řetězcích

Hodnota řetězce spojení obsahuje jedno zpětné lomení mezi (localdb) a názvem instance. Únik závisí na tom, kam napíšete hodnotu:

Location Hodnota serveru
Prostý text, konfigurace v jazyce Extensible Markup Language (XML), nebo řetězec PowerShellu uzavřený v jednoduchých uvozovkách. (localdb)\MSSQLLocalDB
C# doslovný řetězec. @"(localdb)\MSSQLLocalDB"
běžný řetězec v jazyce C# nebo řetězec JSON (JavaScript Object Notation). "(localdb)\\MSSQLLocalDB"

Nekopírujte zdvojená zpětná lomítka z jazyka C# do prostotextového připojovacího řetězce.

Pojmenované a sdílené instance

Použijte pojmenovanou instanci, když chcete samostatnou lokální instanci enginu pro aplikaci. Vytvořte ho před připojením:

SqlLocalDB create SqlClientDev
SqlLocalDB start SqlClientDev
SqlLocalDB info SqlClientDev

Připojte se pomocí tohoto připojovacího řetězce v prostém textu:

Server=(localdb)\SqlClientDev;Database=master;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;

Různí uživatelé Windows mohou mít soukromé instance se stejným názvům. Samotné jméno neidentifikuje instanci jiného uživatele.

Sdílená instance má alias viditelný pro ostatní uživatele na stejném počítači. Administrátor musí nastavit sdílení a ostatní uživatelé potřebují vhodné přihlášení pro Windows nebo SQL. Sdílení automaticky neuděluje oprávnění k databázi. Použijte sdílený jmenný prostor:

Server=(localdb)\.\<shared_instance>;Database=<database>;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;

Sdílejte vývojovou instanci jen záměrně. Zkontrolujte místní přístup k souborům a oprávnění k databázi. Viz sdílené instance LocalDB.

Poznámky

Použijte AttachDBFilename k připojení existujícího databázového souboru, ke kterému má vlastník instance přístup. Také zadejte název databáze:

Server=(localdb)\MSSQLLocalDB;Database=<database>;AttachDBFilename=C:\Data\<database>.mdf;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;

Použijte absolutní cestu k souboru nebo správně nastavenou |DataDirectory| hodnotu. AttachDBFilename Nevytváří chybějící databázový soubor. Engine musí podporovat verzi databázového souboru a jiná instance nemůže mít soubor již otevřený.

Pokud při připojení souboru vynecháte Database, databáze se odebere z instance LocalDB při ukončení aplikace. Specifikujte Database , kdy chcete trvalou registraci databáze.

User Instance=true není platný pro LocalDB. Nepoužívejte MultiSubnetFailover=true s LocalDB; jeho lokální pojmenované spojení není failover endpoint Transmission Control Protocol (TCP).

Chraňte databázi a logové soubory oprávněním pro Windows soubory. Osoba, která dokáže zkopírovat nechráněný databázový soubor, jej může potenciálně připojit k instanci, kterou sám kontroluje. SQL oprávnění nenahrazují ochranu souborového systému.

Programové vytvoření pojmenované instance

Platí pro: .NET Framework

Pro aplikaci .NET Frameworku deklarujte pojmenovanou instanci a její nainstalovanou verzi LocalDB enginu v system.data.localdb sekci .app.config Zaregistrujte Microsoft.Data.LocalDBConfigurationSection typ konfigurační sekce z assembleru Microsoft.Data.SqlClient a poté přidejte instanci pod localdbinstances.

Přiřaďte název instance do Server=(localdb)\<instance> položky konfigurace a použijte verzi LocalDB engine nainstalovanou na počítači. Nekopírujte starou verzi ovladače v assembleru nebo engine do nové aplikace.

Moderní .NET tuto konfigurační sekci nepoužívá k vytváření instancí. Použijte SqlLocalDB při nastavení vývojářů nebo LocalDB management API , když aplikace musí spravovat instanci.

Limitations

LocalDB běží s oprávněními vlastníka instance. Je určen pro místní rozvoj, ne pro sdílenou produkční službu.

  • LocalDB je pouze pro Windows. Připojení k LocalDB ve spravované síti na platformě jiného typu než Windows vyvolá PlatformNotSupportedException.
  • Vzdálená správa není podporována.
  • Použití předplatitelů FILESTREAM a merge-replication není podporováno.
  • Service Broker podporuje pouze lokální fronty.
  • Velikost databáze a limity zdrojů se řídí nainstalovaným enginem SQL Server Express, nikoli verzí balíčku SqlClient.
Engine Maximální výpočetní výkon na instanci Maximální buffer pool v megabajtech (MB) Maximální velikost relační databáze v gigabajtech (GB)
SQL Server 2022 Express LocalDB. Méně než 1 socket nebo 4 jádra. 1 410 MB. 10 GB.
SQL Server 2025 Express LocalDB. Méně než 1 socket nebo 4 jádra. 1 410 MB. 50 GB.

Podívejte se na limity edic pro SQL Server 2022 a SQL Server 2025. Testování LocalDB neprovádí autentizaci Microsoft Entra, ověřování certifikátů Transport Layer Security (TLS), failover skupiny dostupnosti ani omezení cloudových služeb. Otestujte je samostatně v cílovém prostředí nasazení.