Я начинаю изучать SQL, и у меня есть книга, которая предоставляет базу данных для работы. Эти файлы ниже находятся в каталоге, но проблема в том, что когда я запускаю запрос, он выдает мне эту ошибку:
Сообщение 5120, уровень 16, состояние 101, строка 1 Не удается открыть физический файл "C: \ Murach \ SQL Server 2008 \ Databases \ AP.mdf". Ошибка операционной системы 5: «5 (доступ запрещен.)».
CREATE DATABASE AP
ON PRIMARY (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP.mdf')
LOG ON (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP_log.ldf')
FOR ATTACH
GO
В книге автор говорит, что это должно работать, но в моем случае это не работает. Я искал, но я не знаю точно, в чем проблема, поэтому я отправил этот вопрос.
sql
sql-server
Диджей Джиджфс
источник
источник
Ответы:
Учетная запись службы ядра СУБД SQL Server должна иметь разрешения на чтение и запись в новой папке.
Проверьте это
источник
Administrators Group
MSSQL$SQLEXPRESS
), может быть неочевидно, что вам нужно добавить учетную запись в список разрешений для папок следующим образом:NT Service\MSSQL$SQLEXPRESS
Старый пост, но здесь пошаговая инструкция для SQL Server 2014, работающего под Windows 7:
Вуаля!
Я думаю, что настройка учетной записи входа могла быть опцией при установке, но если это так, то это было не по умолчанию, и было легко пропустить, если вы еще не знали об этой проблеме.
источник
Чтобы обойти проблему отказа в доступе, я запустил SSMS как администратор, и это позволило мне подключить базу данных с моего локального диска. База данных была создана в другом экземпляре SQL и Windows.
источник
Это проблема, связанная с Windows, где SQL Server не имеет соответствующих прав доступа к папке, содержащей файл .bak, и, следовательно, эта ошибка.
Самый простой способ - скопировать ваш файл .bak в хранилище резервных копий SQL по умолчанию, которое имеет все необходимые разрешения. Вам не нужно возиться с чем-то еще. В SQL SERVER 2012 это расположение
источник
У меня была эта проблема. Просто запустите SQL Server от имени администратора
источник
Да, это правильно. Сначала вы должны узнать свою служебную учетную запись sqlserver, вы можете увидеть ее в диспетчере задач при одновременном нажатии ctrl + alt + delete; затем вы должны дать привилегию чтения / записи "C". : \ Murach \ SQL Server 2008 \ Базы данных "для учетной записи службы.
источник
Проблема связана с отсутствием разрешений для SQL Server для доступа к файлам mdf и ldf. Все эти процедуры будут работать:
источник
Я решаю эту проблему, добавив
Full control
разрешение для обоих.mdf
и.ldf
файлов дляUsers
группы.источник
Для меня это было решено следующим образом со студией управления SQL Server. - Войдите в систему как администратор (я вошел в систему как проверка подлинности Windows) - Установите файл mdf (щелкните правой кнопкой мыши База данных | Вложить | Добавить) - Выйдите как администратор - Войдите в систему как обычный пользователь
источник
Фактические разрешения сервера не будут иметь значения на этом этапе; все выглядит хорошо. Самому SQL Server нужны разрешения для папок.
в зависимости от вашей версии вы можете добавить разрешения SERVERNAME $ MSSQLSERVER, чтобы касаться вашей папки. В противном случае он должен находиться в каталоге BACKUP по умолчанию (либо там, где вы его установили, либо по умолчанию c: \ programfiles (x) \ MSSQL \ BACKUP.
источник
Даже если вы выполните следующие шаги, вы МОЖЕТЕ получить то же сообщение об ошибке.
Я все еще получил ошибку разрешения, но потом я заметил, что на экране «Присоединение» нижняя часть STILL показала файл LOG, и сообщение об ошибке осталось прежним.
Надеюсь, это поможет тому, кто сделал то же самое.
источник
Очень простое решение.
источник
Я использовал Entity Framework в своем приложении и у меня возникла эта проблема, я установил любое разрешение в папках и службах Windows и не работает, после этого я запускаю свое приложение как администратор (щелкните правой кнопкой мыши в exe-файле и выберите «Запуск от имени администратора»), и это работает хорошо.
источник
Если вы получили эту ошибку для
.MDF
файла вAPP_DATA
папке (или где-либо, где вы ее поместили) для проекта Visual Studio, то, как я это сделал, было просто скопировать разрешения из существующейDATA
папки здесь (я использую SQL Express 2014 для поддержки старое приложение):(примечание: ваш фактический путь установки может отличаться - особенно если имя вашего экземпляра другое)
Дважды щелкните по
DATA
папке сначала как администратор, чтобы убедиться, что у вас есть доступ, затем откройте свойства папки и имитируйте то же самое дляAPP_DATA
папки. В моем случае отсутствующим пользователем былMSSQL$SQLEXPRESS2014
(потому что я назвал экземплярSQLEXPRESS2014
- ваш может отличаться). Это также происходит с именем пользователя службы SQL Server.источник
По какой-то причине установка всех правильных разрешений в моем случае не помогла. У меня был файл,
db.bak
который я не смог восстановить из-за5(Access is denied.)
ошибки. Файл был помещен в ту же папку, что и несколько других файлов резервных копий, и все разрешения были идентичны другим файлам. Мне удалось восстановить все остальные файлы, кроме этогоdb.bak
файла. Я даже пытался изменить журнал службы SQL Server на пользователя - все тот же результат. Я попытался скопировать файл без эффекта.Затем я попытался просто создать идентичный файл, выполнив
вместо копирования файла. И вуаля это сработало!
db2.bak
успешно восстановлен.Я подозреваю, что о некоторых других проблемах с чтением файла резервной копии можно ошибочно сообщить, как
5(Access is denied.)
в MS SQL.источник
В linux я зашел в
/var/opt/mssql/data/
папку и открыл терминал сsudo
затем, изменил мои права доступа к файлам * .mdf и * .ldf, как показано ниже, в которых вы заменяетеyourDB
своим именем файла базы данных иmyUser
текущим зарегистрированным именем пользователя:После этого он был снова подключен без каких-либо проблем.
источник
Это означает, что пользователь для входа в систему SSMS не имеет разрешения для файла .mdf. Вот как это сработало для меня:
Я открыл SSMS (Запуск от имени администратора) и вошел в систему как пользователь-администратор, щелкнул правой кнопкой мыши на присоединении базы данных, нажмите кнопку Добавить, выберите файл .mdf, нажмите кнопку ОК. Готово.
источник