sql server mdf файл базы данных вложение - PullRequest
2 голосов
/ 08 сентября 2010

Мне не терпится заставить Visual Studio 2010 (как мне кажется, окончательно) правильно подключиться к моей базе данных.Он был перенесен с исходного места на #MYAPP#/#MYAPP#.Web/App_Data/#MDF_FILE#.mdf.У меня есть три экземпляра SQL Server на этом компьютере.Я попытался заменить старый файл mdf своим новым и не могу получить правильную строку подключения.

Что я действительно пытаюсь сделать, так это просто открыть экземпляр БД и запустить скрипт создания БД.Тогда у меня может быть БД, сгенерированная с помощью моего edmx (сгенерировать базу данных из модели) в бизнес-приложении Silverlight (c #)

Прямо сейчас, когда я захожу в Server Explorer в VS, выбираю добавить новое соединение, выбираю MSФайл базы данных SQL Server (SqlClient), выберите местоположение моего файла (каталог app_data), используйте проверку подлинности Windows и нажмите кнопку «Проверить подключение», я получаю следующую ошибку:

Невозможно открыть физический файл "».Ошибка операционной системы 5: «5 (доступ запрещен.)».Попытка подключиться к базе данных с автоматическим именем для файла "" не удалась.База данных с тем же именем существует, или указанный файл не может быть открыт, или он находится на общем ресурсе UNC.

Файл mdf был создан на том же компьютере

  • Подключение к (локальному) в SQL Server Management Studio.
  • Получение нового запроса.
  • Вставка в SQL из сгенерированного файла ddl.
  • Добавление CREATE DATABASE [NcrCarDatabase]; GO; перед вставленным SQL и
  • Выполнение запроса.

I затем

  • Отключено от БД в Management Studio.
  • Закрыто Management Studio
  • Перейдено в каталог DATA для этогоэкземпляр
  • скопировал файлы mdf и ldf в папку app_data моего приложения.

Я сейчас пытаюсь подключиться к тому же файлу в Visual Studio.

Надеюсь, это прояснит мои проблемы:).

Строка подключения:

Источник данных =. \ SQLEXPRESS; AttachDbFilename = C: \ SourceCode\ NcrCarDatabase \ NcrCarDatabase.Web \ App_Data \ NcrCarDatabase.mdf; Интегрированная безопасность = True; Время ожидания соединения = 30; Экземпляр пользователя = True

Ответы [ 5 ]

1 голос
/ 19 января 2014

Я получал «доступ запрещен», пока не запустил Visual Studio от имени администратора. Затем мне пришлось отсоединить базу данных от MSSMS, прежде чем я смог получить ее в Visual Studio.

1 голос
/ 14 июля 2013

Access denied вполне может означать, что у вас уже есть активный экземпляр, который открыл файл до того, как вы это сделали - и если у вас есть три активных экземпляра, скорее всего, один из них является виновником.

Вы можете попробовать подключиться к различным экземплярам с помощью Management Studio и посмотреть, сможете ли вы найти базу там. Если да, отсоедините его от экземпляра и повторите попытку из Visual Studio. Или, если возможно, попробуйте закрыть все три экземпляра, а затем повторите попытку из Visual Studio. Если это работает, перезапустите экземпляры один за другим, чтобы определить, какой из них пытается получить файл.

Ранее я отвечал на похожий вопрос, который может помочь .

1 голос
/ 14 июля 2013

Служба Sql-сервера работает под указанной учетной записью.Вы должны определить учетную запись через свойства службы, а затем изменить безопасный доступ к файлу db на полный доступ для этой учетной записи.

1 голос
/ 08 сентября 2010

Вы упомянули, что ваш файл MDF был перемещен. Был ли MDF правильно подключен к SQL Express после переезда? См .: Как: прикрепить файл базы данных к SQL Server Express .

0 голосов
/ 19 ноября 2014

Обеспечьте безопасность для Полный контроль для папки вашего приложения и .mdf, .ldf файлов.Нажмите на запись в папке, содержащей файлы .mdf, .ldf

  1. Перейдите к свойству
  2. щелкните безопасность в этом
  3. Нажмите Полное управление в разрешении.

и они продолжат ваш процесс.

...