У меня есть файл, содержащий резервную копию базы данных SQL Server 2012. Я использую этот файл с приложением C# WinForms, которое создает базу данных, восстанавливает в нее резервную копию и затем выполняет некоторые другие функции.C#: восстановление базы данных SQL Server из резервной копии внутри встроенного ресурса
Я не хочу просто добавлять этот файл резервной копии в свое приложение, потому что это проблема с безопасностью. Я думал, что должен добавить резервную копию в качестве встроенного ресурса, а затем сохранить его в временном файле, восстановить его и удалить.
Есть ли лучший способ сделать это? Есть ли способ получить доступ к встроенному ресурсу напрямую через путь к файлу, который я могу передать серверу SQL для использования в команде RESTORE DATABASE?
MooJuice - вы правы в своих предположениях. – user884248
Я мог бы сделать то, что вы предлагаете, но эта база данных по умолчанию содержит несколько сотен таблиц, тысячи хранимых процедур и несколько наборов строк встроенных данных. Гораздо проще управлять как реальной базой данных. Поэтому, когда пришло время развертывания, гораздо проще создать резервную копию и сохранить ее где-нибудь, чем создать скрипт, который будет содержать десятки тысяч строк кода, и проверять его каждый раз. Кроме того, я уверен, что запуск сценария займет больше времени, чем восстановление. Также ... в общем, дело с выполнением кода кажется скорее головной болью, чем восстановлением. – user884248
@ user884248, хорошо, что вы делаете хорошую точку, если база данных такая же большая, как вы говорите. Вы * можете * сохранить его как двоичный ресурс, а затем записать его на диск для SQL Server, чтобы найти (а затем удалить его), но это сделает исполняемый файл непристойно огромным только для разовой вещи. Другой вариант может заключаться в том, чтобы иметь его в зашифрованном zip-файле, который вы можете извлечь при запуске и сделать то же самое. Не безупречный и, безусловно, взломанный, но что бы вы ни делали - если вы развертываете базу данных при настройке, это будет проблемой, если безопасность будет рассмотрена. –