Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
SQL Server Express LocalDB — это лёгкий движок SQL Server для локальной разработки Windows. Он работает под вашим именем пользователя Windows и запускается по запросу. LocalDB — это не удалённый сервис баз данных и не работает на Linux или macOS.
Для кроссплатформенной разработки используйте поддерживаемый контейнер SQL Server или удалённую SQL-конечную точку. Установка Microsoft.Data.SqlClient пакета NuGet устанавливает драйвер клиента, а не LocalDB.
Установка LocalDB
Установите LocalDB через SQL Server Express или через установщик Visual Studio. В Visual Studio выберите соответствующую нагрузку для разработки данных или отдельный компонент SQL Server Express LocalDB. См. установка SQL Server Express LocalDB для получения сведений об актуальных вариантах загрузки и установки.
Установка LocalDB обеспечивает движок, SQLUserInstance.dll, и утилиту управления SqlLocalDB.exe. Если SqlLocalDB отсутствует на PATH, запустите его из каталога установленных средств SQL Server.
Перечислите установленные версии и экземпляры:
SqlLocalDB versions
SqlLocalDB info
Подключитесь к автоматическому экземпляру
Автоматический экземпляр называется MSSQLLocalDB и принадлежит текущему пользователю Windows. Используйте интегрированную аутентификацию Windows. LocalDB не поддерживает аутентификацию Microsoft Entra.
Для консольного приложения .NET с 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());
Запрос выводит master. Первое соединение может занять больше времени, потому что LocalDB создаёт или запускает экземпляр. Если время запуска превышает тайм-аут соединения, проверьте статус экземпляра, дождитесь завершения запуска и попробуйте снова.
Этот пример разрешает использовать сертификат локальной разработки с TrustServerCertificate=true. Ограничьте применение этого исключения только локальной разработкой. Для удалённой SQL-точки используйте проверяемый сертификат и TrustServerCertificate=false; см. Шифрование и проверка сертификатов.
Обратные косые черты в строках соединения
Значение строки подключения содержит одну обратную косую черту между (localdb) и именем экземпляра. Побег зависит от того, где вы записываете значение:
| Location | Серверное значение |
|---|---|
| Обычный текст, конфигурация на расширяемом языке разметки (XML) или строка PowerShell в одинарных кавычках. | (localdb)\MSSQLLocalDB |
| дословная строка в C# | @"(localdb)\MSSQLLocalDB" |
| Обычная строка C# или строка JavaScript Object Notation (JSON). | "(localdb)\\MSSQLLocalDB" |
Не копируйте удвоенные обратные слеши C# в обычную текстовую строку подключения.
Именованные и совместно используемые экземпляры
Используйте именованный экземпляр, если хотите отдельный локальный экземпляр движка для приложения. Создайте его перед подключением:
SqlLocalDB create SqlClientDev
SqlLocalDB start SqlClientDev
SqlLocalDB info SqlClientDev
Подключитесь с помощью этой строки подключения в виде обычного текста:
Server=(localdb)\SqlClientDev;Database=master;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;
Разные пользователи Windows могут иметь приватные экземпляры с одинаковым именем. Одного имени недостаточно, чтобы идентифицировать экземпляр другого пользователя.
Общий экземпляр имеет псевдоним, видимый другим пользователям на том же компьютере. Администратор должен настроить совместный доступ, а другим пользователям — соответствующий вход в Windows или SQL. Обмен не даёт автоматически права на базу данных. Используйте общее пространство имён:
Server=(localdb)\.\<shared_instance>;Database=<database>;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;
Предоставляйте доступ к экземпляру для разработки только осознанно. Проверьте доступ к локальным файлам и права на базу данных. См. раздел Общие экземпляры LocalDB.
Замечания
Используйте AttachDBFilename для прикрепления существующего файла базы данных, к которому владелец экземпляра может получить доступ. Также укажите имя базы данных:
Server=(localdb)\MSSQLLocalDB;Database=<database>;AttachDBFilename=C:\Data\<database>.mdf;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;
Используйте абсолютный путь к файлу или правильно настроенное |DataDirectory| значение.
AttachDBFilename не создает отсутствующий файл базы данных. Движок должен поддерживать версию файла базы данных, и другой экземпляр не может уже иметь файл открытым.
Если при присоединении файла пропустить Database, база данных будет удалена из экземпляра LocalDB при закрытии приложения. Укажите Database , когда вам нужна постоянная регистрация базы данных.
User Instance=true не действит для LocalDB. Не используйте MultiSubnetFailover=true с LocalDB; его локальное именованный канал не является конечной точкой отказа по протоколу управления передачей (TCP).
Защитите базу данных и файлы журналов с помощью разрешений для файлов Windows. Человек, который может скопировать незащищённый файл базы данных, может потенциально прикрепить его к контролируемому им экземпляру. Разрешения SQL не заменяют защиту файловой системы.
Программное создание именованного экземпляра
Область применения: .NET Framework
Для приложения .NET Framework объявите именованный экземпляр и его установленную версию движка LocalDB в разделе system.data.localdbapp.config. Зарегистрируйте тип раздела конфигурации Microsoft.Data.LocalDBConfigurationSection из сборки Microsoft.Data.SqlClient, а затем добавьте экземпляр в разделе localdbinstances.
Сопоставьте имя Server=(localdb)\<instance> экземпляра с записью конфигурации и используйте версию движка LocalDB, установленную на компьютере. Не копируйте старую версию сборки драйвера или движка в новое приложение.
Современный .NET не использует этот раздел конфигурации для создания экземпляров. Используйте SqlLocalDB при настройке разработчиком или API управления LocalDB , когда приложению необходимо управлять экземпляром.
Limitations
LocalDB работает с разрешениями владельца экземпляра. Он предназначен для локального развития, а не для совместного производства.
- LocalDB работает только для Windows. Управляемое сетевое соединение LocalDB на платформе вне Windows выдает
PlatformNotSupportedException. - Удалённое управление не поддерживается.
- Использование подписчиков FILESTREAM и merge-replication не поддерживается.
- Service Broker поддерживает только локальные очереди.
- Размер базы данных и ограничения ресурсов соответствуют установленному движку SQL Server Express, а не версии пакета SqlClient.
| Engine | Максимальные вычислительные ресурсы на экземпляр | Максимальный пул буфера в мегабайтах (МБ) | Максимальный размер реляционной базы данных в гигабайтах (GB) |
|---|---|---|---|
| SQL Server 2022 Express LocalDB. | Меньше одного сокета или 4 ядер. | 1 410 МБ. | 10 ГБ. |
| SQL Server 2025 Express LocalDB. | Меньше одного сокета или 4 ядер. | 1 410 МБ. | 50 ГБ. |
Смотрите ограничения по версиям SQL Server 2022 и SQL Server 2025. Тестирование LocalDB не включает аутентификацию Microsoft Entra, проверку сертификатов удалённого транспортного уровня безопасности (TLS), резервное переключение группы доступности или ограничения облачных сервисов. Тестируйте их по отдельности в целевой среде развертывания.