sp_attach_single_file_db Ошибка: ошибка операционной системы 5 (доступ запрещен) - PullRequest
4 голосов
/ 15 июля 2011

Я пытаюсь использовать эту базу данных, которая поставляется с этим примером проекта от MS:

http://code.msdn.microsoft.com/ASPNET-Web-Forms-6c7197aa/sourcecode?fileId=18930&pathId=365206059

Итак, после того, как я скачал файлы: мне нужно прикрепить базу данных .mdf к моему экземпляру MS SQL 2008.

Из Management Studio Прикрепление базы данных не работает, и событие, использующее эту команду, выдает ту же ошибку:

sp_attach_single_file_db 'School.mdf', 'C: \ School.mdf'


ОШИБКА:

Msg 5133, Level 16, State 1, Line 1
Directory lookup for the file "C:\School.mdf" failed with the operating system error 5(Access is denied.).

Есть идеи, что не так? Спасибо за вашу помощь!

Ответы [ 6 ]

14 голосов
/ 12 мая 2013

Дайте полное разрешение на папку, в которой вы хотите создать файл mdf к учетной записи входа, с которой работает служба SQL Server. Обычно: NT Service \ MSSQL $

Вы можете посмотреть это Панель управления-> Администрирование-> Службы => SQL Server -> Свойства-> Вкладка «Вход» -> Отметить учетную запись

10 голосов
/ 15 июля 2011

В какой операционной системе вы работаете?Получили ли вы запрос на повышение прав при сохранении файла в корне диска C?Под какой учетной записью работает SQL Server и имеет ли она права на чтение любых файлов в корне диска C?

Возможно, вам лучше поместить файл в %ProgramFiles%\Microsoft SQL Server\MSSQL10.<instance name>\MSSQL\DATAнаряду с другими .mdf файлами, которые, как вы знаете, уже могут быть прочитаны (при необходимости измените путь выше, но, надеюсь, вы поняли).

3 голосов
/ 17 октября 2012

У меня была эта проблема, и все решения онлайн вводили в заблуждение.

Решением было открыть SSMS от имени администратора. По моему мнению, сначала попробуйте это, а затем попробуйте все другие решения.

0 голосов
/ 03 июля 2017

В моем случае я обнаружил, что для поиска в Справочнике нужна группа компьютеров / пользователей в разрешениях на чтение / список. Хотя служба и реальный пользователь, выполняющий (в моем случае) восстановление, имели полные разрешения, это разрешение было важно. Безопасность, если я ненавижу это.

0 голосов
/ 12 июля 2016

создать DATABASE newDataBaseName

on (FILENAME = 'C: \ Program Files (x86) \ Microsoft SQL Server \ MSSQL12.SQLEXPRESS \ MSSQL \ DATA \ filename.mdf'),

(FILENAME = 'C: \ Program Files (x86) \ Microsoft SQL Server \ MSSQL12.SQLEXPRESS \ MSSQL \ DATA \ filename_log.ldf')

FOR ATTACH_REBUILD_LOG;

GO

Также, как упоминал выше Дэмиен, поместите mdf-файлы туда, где находятся ваши другие mdf-файлы.Для меня C: \ Program Files (x86) \ Microsoft SQL Server \ MSSQL12.SQLEXPRESS \ MSSQL \ DATA

0 голосов
/ 12 апреля 2012

Перемещение в папку DATA в основном решило проблему с разрешениями. Другое решение состоит в том, чтобы изменить права доступа к файлу (или файлам) и, таким образом, по-прежнему иметь БД в другой папке. Я только что столкнулся с похожей ошибкой разрешения «CREATE FILE обнаружена ошибка операционной системы 5 (доступ запрещен.)» При попытке подключить БД в SQL Server 2012 express в Windows 7.

Решение, которое я сделал, было следующим: 1) Богатый щелчок по каждому файлу MDF, LDF и NDF, чтобы открыть меню -> выбрать свойства 2) Добавить пользователей на компьютер и дать им полный контроль (вместо всех - на опасные)

После этого я могу присоединить БД.

Однако, даже если не перемещать в папку DATA, следует перейти в подпапку вместо C: \ root (пример: C: \ mydb).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...