Как изменить "Местоположение базы данных по умолчанию" для LocalDB в SQL Server Management Studio?

  • Подключение к LocalDB в SSMS
  • Откройте Свойства сервера → Настройки базы данных enter image description here
  • Изменение местоположения данных/журнала/резервного копирования → нажмите OK

Когда я нажимаю OK, я получаю эту ошибку: enter image description here

Нашел некоторый блогпост и изменил это в regedit, но это не помогло. enter image description here

У кого-нибудь есть другие идеи, которые я мог бы попробовать?

Ответы

Ответ 1

Я не верю, что эти пути по умолчанию для SQL Server LocalDB являются изменяемыми. Это весьма прискорбно из-за того, что кажется ошибкой в SQL Server Express 2017 LocalDB ** (исправлено с CU 6 для SQL Server 2017) согласно этому вопросу (и моему ответу на него) на DBA.StackExchange:

LocalDB v14 создает неправильный путь для файлов mdf

ОДНАКО, вам не нужно использовать пути по умолчанию. Они используются при создании базы данных без указания физического местоположения. Если вы укажете физическое местоположение, вы сможете создавать файлы в любой папке/каталоге, к которым у вас есть права на чтение/запись.

Ответ 2

После внесения изменений в реестр попробуйте перезапустить экземпляр sql. Также я бы удостоверился, что учетная запись, на которой работает SQL Server, имеет возможность писать в эту папку. для легкого теста вы можете перейти к свойствам папки → безопасность, а затем добавить учетную запись "все", а затем дать им полный контроль. затем попробуйте сделать это изменение. Если он работает, это проблема с правами доступа к этой учетной записи. Учетные записи обычно не имеют доступа к другим учетным записям пользователей без какого-либо уровня администрирования.

Ответ 3

Я думаю, что одной из целей LocalDB является то, что очень удобно связывать демо-базу данных вместе с исходными файлами приложения. Файл базы данных и его журнал, конечно, находятся где-то в каталоге исходного файла.

Возьмите решение Visual Studio, например, в web.config или app.config, вы можете увидеть что-то вроде этого:

<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-XXXXXX-20140609153630;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-XXXXXX-20140609153630.mdf" providerName="System.Data.SqlClient" />

Теперь, когда местоположение каждого LocalDB указано в файле конфигурации, я не думаю, что "местоположение по умолчанию" имеет смысл.