7

Я пытаюсь прикрепить файл базы данных (* .mdf, * .ldf), который я поместил в ту же папку, что и все остальные мои базы данных SQL Server. Я начинаю присоединение, пытаясь перейти к папке, которая содержит файлы базы данных, а также все мои активные файлы базы данных. Я выбираю "присоединить базу данных" и нажимаю кнопку "Добавить", чтобы добавить базу данных в список баз данных для присоединения. Когда я это делаю, я получаю эту ошибку:

TITLE: Locate Database Files - BESI-CHAD
------------------------------

D:\SQLdata\MSSQL10_50.SQLBESI\MSSQL\DATA
Cannot access the specified path or file on the server. Verify that you have the necessary security privileges and that the path or file exists.  

If you know that the service account can access a specific file, type in the full path for the file in the File Name control in the Locate dialog box.

------------------------------
BUTTONS:

OK
------------------------------

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

Любая идея, почему я не могу перейти к этой папке и прикрепить к файлам БД, которые я там поместил?

5 ответов5

6

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

Если это просто среда тестирования / разработки, лучший способ решить эту проблему - настроить службу экземпляра SQL Server для работы с SYSTEM-Accont. Учетная запись SYSTEM имеет доступ к корневому каталогу накопителя и папке данных. Это устраняет также много других проблем.

Если вы используете проверку подлинности Windows, вам также необходимо запустить Management Studio от имени администратора, если у вас недостаточно прав на эту папку.

Предупреждение: НИКОГДА не используйте Системную учетную запись для производительного Сервера. Используйте Exec-Command для присоединения баз данных и убедитесь, что у службы достаточно прав для доступа к папке данных.

3

У пользователя должен быть полный доступ к файлам, но, по моему мнению, присоедините базу данных, используя «sa» или другого администратора SQL, и тогда пользователи вашей базы данных смогут получить доступ к базам данных.

0

Ответ DiableNoir кажется правильным. Однако я не мог понять, что он имел в виду, пока не прочитал еще один пост здесь.

Краткий и практический ответ будет:

Перейдите в раздел «Управление компьютером»> «SQL Server»> «Свойства»> «Вход в систему». Здесь необходимо проверить отметку в учетной записи локальной системы> щелкните «Разрешить службе взаимодействовать с рабочим столом» (перефразируя ответ Шилы Чаухан).

ВНИМАНИЕ: просто имейте в виду предупреждение от DiableNoir.

0

Вы много добавляете группу USERS в безопасность исходной / целевой папки резервного копирования.

Для этого щелкните правой кнопкой мыши папку, выберите имя компьютера, ... и добавьте ПОЛЬЗОВАТЕЛИ.

0

У нас следующая ситуация: служба SQL Server работает под учетной записью домена. Мы удаляем некоторые разрешения по умолчанию для корневых дисков в качестве политики.

Когда мы пытаемся найти файл для присоединения базы данных или восстановления базы данных, мы получаем ошибку при доступе к папке по умолчанию, которая содержит файлы данных для региона SQL Server. Однако, если мы введем имя папки в поле "Расположение файла данных базы данных" и имя файла в поле "имя файла", она присоединит базу данных без проблем.

Когда мы ищем сбои в журнале безопасности, их нет, хотя мы включили аудит сбоев в папке, показанной в ошибке.

В конце концов мы решили проблему, добавив учетную запись домена, чтобы иметь доступ для чтения на корневом диске для папки данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .