Не удается установить базу данных adventureworks 2012 - Ошибка операционной системы 5: Доступ запрещен

Я пытаюсь установить базу данных AdventureWorks 2012 в SQL Server 2012. Я получил файл mdf из этой ссылки - http://msftdbprodsamples.codeplex.com/releases/view/93587

Вот имя загруженного мной файла - AdventureWorks2012_Database.zip

Я делаю все это на Windows 7 64 бит.

Я получаю сообщение об ошибке ниже:

Attach database failed for Server 'SuperPC\SQL2012'.  (Microsoft.SqlServer.Smo)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=11.0.2100.60+((SQL11_RTM).120210-1917+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

Unable to open the physical file "C:\Databases\AdventureWorks2012_Data.mdf". Operating system error 5: "5(Access is denied.)". (Microsoft SQL Server, Error: 5120)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2100&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476

Ответ 1

Причина проблемы. Помещение файлов базы данных mdf и ldf в каталог за пределами "официальной" установочной папки SQL Server.

Решение -

http://tryingmicrosoft.com/error-while-attaching-a-database-to-sql-server-2008-r2/

Вставьте ваш .mdf файл и ldf файл в этот каталог - C:\Program Files\Microsoft SQL Server\MSSQL11.SS2012\MSSQL\DATA

Решения, которые НЕ решили проблему -

1 - Разблокировка файлов с zip файлами. Также проверено, что файлы mdf и ldf не заблокирован. (Шаги - щелкните правой кнопкой мыши zip файл > свойствa > разблокировать)

Unblock

2 - Запуск SSMS 2012 в качестве администратора.

3 - Запустить SQL-запрос формы -

CREATE DATABASE MyAdventureWorks 
    ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), 
    (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') 
    FOR ATTACH; 

Ответ 2

Функции

1. Переместить .mdf и .ldf в каталог установки SQLServer\Data\folder (например, C:\Program Files (x86)\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA)

2. Запуск SQL Server Management Studio в качестве администратора

3. Добавьте права на пользователя SQL Server в каталог, к которому вам нужен доступ. Я не был уверен, какой пользователь был прав, но сумел заставить его работать, предоставив учетной записи "[PCNAME]\Users" полный доступ к этой папке.

Шаги

Щелкните правой кнопкой мыши папку. Выберите "Свойства". Выберите вкладку "Безопасность". Нажмите "Редактировать". Выберите "Пользователи ([PCNAME]\Пользователи" ), например, если имя компьютера было mycomp, тогда это будет "Пользователи (mycomp\Users)"

Установите флажок "Разрешить" рядом с "Полный контроль" в разделе "Разрешения" для пользователей "

Подробнее см. здесь для параметров 1 и 2..

CREATE FILE столкнулся с оперативной системной ошибкой 5 (не удалось получить текст для этой ошибки Причина: 15105)

Ответ 3

Я изменил права доступа, и это сработало для меня: безопасность → Дополнительно. Добавьте "NT Service\MSSQLSERVER" и дайте полный доступ, отключить наследование, добавьте себя для удобства устранения неполадок. Сделайте это на обоих файлах .mdf и .ldf.

Ответ 4

Вам не нужно перемещать файл .mdf. Просто щелкните правой кнопкой мыши папку, в которой находится база данных, и измените разрешения безопасности. Я дал полноправным пользователям аутентифицированных пользователей. Затем я запустил TSQL script ниже, чтобы прикрепить базу данных:

CREATE DATABASE MyAdventureWorks 
    ON (FILENAME = 'C:\Adventureworks\AdventureWorks2012_Data.mdf'), 
    (FILENAME = 'C:\Adventureworks\AdventureWorks2012_Log.ldf') 
    FOR ATTACH; 

Как вы можете видеть, мои файлы базы данных находятся в папке с именем Adventureworks.

Ответ 5

Ошибка 5 - Доступ запрещен - Поставляется со старых дней DOS. В принципе, это ошибка списка управления доступом ACL.

Вы можете размещать базы данных в любом месте, если у вас есть доступ к учетной записи SQL SERVER SERVICE!

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

Вам не нужно запускать SSMS в качестве администратора. Я все время привязывал базы данных без этого шага.

Ответ 6

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

Я пытался создать базу данных, присоединившись, и я продолжал получать аналогичный скриншот

enter image description here

Благодаря приведенной ниже статье я нашел и просто должен был удалить журнал, это было очевидно, но MS не предлагала не показывать себя для новых баз данных. Очень плохой опыт, не уверен, что его аналогичные для лицензионных продуктов SQL Server.

http://exacthelp.blogspot.in/2012/12/unable-to-open-physical-file-operating.html

Ответ 7

Шаги по присоединению базы данных AdventureWorks2012 к вашей локальной базе данных MSSQL:

Решение 1: Если у вас достаточно места на C:\Drive в Windows и вы хотите создать базу данных в C:\Drive

  • Поместите AdventureWorks2012_Data.mdf и AdventureWorks2012_log.ldf в нижестоящее место C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA

2. Щелкните правой кнопкой мыши на "Базы данных" в проводнике объектов и выберите "Прикрепить"

3.В диалоговом окне "Прикрепить базы данных" нажмите кнопку "Добавить" в поле "Базы данных для прикрепления" .

  1. Перейдите к расположению файла MDF. C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\AdventureWorks2012_Data.mdf и нажмите "ОК" в нижней части диалогового окна "Прикрепить базы данных" .

5. Теперь база данных "AdventureWorks2012" создается в SQL Sever.

Решение 2: Если у вас недостаточно места на C:\Drive в Windows

1. Подключите к локальному серверу, выбрав имя сервера XXX\SQLEXPRESS и аутентификацию - "Аутентификация Windows"

2. Щелкните правой кнопкой мыши на "Базы данных" в проводнике объектов и выберите "Прикрепить"

3.В диалоговом окне "Прикрепить базы данных" нажмите кнопку "Добавить" в поле "Базы данных для прикрепления" .

  1. Перейдите в местоположение файла MDF, например. F:\AdventureWorks2012_Database\AdventureWorks2012_Data.mdf и нажмите "ОК" в нижней части диалогового окна "Прикрепить базы данных" .

  2. Это приведет к появлению следующего сообщения об ошибке: 'При подключении базы данных произошла ошибка. Нажмите гиперссылку в столбце "Сообщение" для получения более подробной информации.

  3. РЕШЕНИЕ:

    i) Щелкните правой кнопкой мыши папку AdventureWorks2012_Data и выберите "Свойства".

    ii) перейдите на вкладку "Безопасность"

    iii) Выберите "Пользователи" (xxx\Users) в разделе "Группа или имена пользователей:"

    iv) Нажмите кнопку "Изменить"

    v) Выберите "Пользователи" (xxx\Users) в "Группе или именах пользователей:" во всплывающем окне,

    vi) Установите флажок "Полный контроль" в разделе "Разрешения для пользователей".

    vii) Нажмите ok и ok.

  4. Теперь вернемся к экрану SQLServ Attach Databases, нажмите кнопку "Добавить" в поле "Базы данных для прикрепления" .

  5. Перейдите в расположение файла MDF, например. F:\AdventureWorks2012_Database\AdventureWorks2012_Data.mdf и нажмите "ОК" в нижней части диалогового окна "Прикрепить базы данных" .

  6. Теперь база данных "AdventureWorks2012" создается в SQL Sever.

Ответ 8

  • Прикрепите базу данных.
  • В диалоговом окне выберите расположение файла AdventureWorks.
  • Добавьте файл.
  • Удалите файл журнала, так как SQL-сервер будет создавать его позже, как только база данных будет прикреплена.

Ответ 9

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

  • Мне пришлось явно предоставить текущему пользователю (мне) полный доступ к папке (несмотря на наличие уже неявных разрешений)
  • Мне пришлось предоставить NT SERVICE\MSSQL$INSTANCENAME Полный доступ к папке

Я предполагаю, что # 1 не требуется, если процесс (SSMS) повышен.

Ответ 10

Предоставление учетной записи службы SQL "NT SERVICE\MSSQLSERVER" "Полный контроль" файлов базы данных

Если у вас есть доступ к файлам/папкам сервера, вы можете попробовать это решение, которое сработало для меня:

SQL Server 2012 на Windows Server 2008 R2

  • Щелкните правой кнопкой мыши файл или папку базы данных (mdf/ldf) и выберите "Свойства".
  • Выберите вкладку "Безопасность" и нажмите кнопку "Изменить".
  • Нажмите кнопку "Добавить".
  • Введите имя объекта, чтобы выбрать "NT SERVICE\MSSQLSERVER" и нажмите кнопку "Проверить имена".
  • Выберите MSSQLSERVER (RDN) и дважды нажмите кнопку "ОК".
  • Дайте этой учетной записи службы "Полный доступ" к файлу или папке.
  • Вернитесь в SSMS, щелкните правой кнопкой мыши базу данных и выберите "Свойства".
  • В разделе "Параметры" прокрутите страницу вниз до раздела "Состояние" и измените "Только для базы данных" с "Истина" на "Ложно".

Ответ 11

просто добавьте текущего пользователя на вкладку безопасности, будет полный контроль и повторный запуск запроса atttach

Ответ 12

Я решил эту проблему, загрузив приключения с этого сайта

http://msftdbprodsamples.codeplex.com/downloads/get/723031

Обратите внимание, что при загрузке приложенной папки zip файлов, файл прилагается с помощью _data, например AdventureWorks2012_Data.zip, так как этот файл содержит файлы .mdf и .ldf.

После загрузки извлеките содержимое папки на этот URL-адрес на вашем компьютере. C:\Program Files\Microsoft SQL Server\MSSQL11. ***\MSSQL\DATA. На сервере SQl перейдите в Проводник объектов и щелкните правой кнопкой мыши на Базах данных, чтобы прикрепить базу данных. В диалоговом окне "Прикрепить" вы должны выбрать Adve ********. Mdf. Все, от чего вы должны быть в порядке.

Надеюсь, это поможет.

Ответ 13

ПРИМЕЧАНИЕ. Windows 7 Pro, SQL 2012

После использования DiskManager.msc мне пришлось добавить machine_name\SERVICE с полным контролем как в файлы .mdf, так и .ldf.

Мой ноутбук - это Borris, поэтому:

  • Щелкните правой кнопкой мыши на имени файла `name → , нажмите вкладку SECURITY, затем разрешений → добавить, а затем проверить тип имен в службах.
  • Чтобы вернуться, нажмите ok, примените, ok, ok, ok и ok.

Не уверен, почему смена букв дисков reset мои разрешения, но это было сделано в Windows введите здесь описание изображения

Ответ 14

Спасибо за предыдущие предложения. Вам не нужно перемещать файлы базы данных в каталог SQL-сервера или удалять файл журнала базы данных. Вместо этого вы просто предоставляете разрешение полного доступа для файлов .MDF и .LDF для аутентифицированных пользователей. Поступая таким образом, я успешно присоединяю образцы баз данных AdventureWorks2012 и AdventureWorksLT2012 в SQL Server Management Studio (SSMS).

Ответ 15

Я решил это:

  • Присоединение файла AdventureWorks2012_Data.

    1,1. Затем появляется файл AdventureWorks2012_log и не существует.

  • Используйте кнопку Remove для удаления файла .log.

  • Нажмите OK.

Затем появится новая база данных.

Ответ 16

iTS EASY, просто остановите службу SQL, скопируйте то, что вы хотите или выполните восстановление, а затем снова запустите службу... voiláaa Вы не можете копировать что-либо, если вы не остановите службу. если вещи, которые вы хотите восстановить, находятся на активном дереве, вы не можете перезаписать его, его заблокированный, простой...

Я знаю... спасибо мне:)

Ответ 17

Когда вы пытаетесь подключить файл данных AdventureWorks2012, убедитесь, что у вас есть права администратора на вашем компьютере.

Вот краткое руководство по прикреплению файла данных AdventureWorks2012 к вашему серверу sql 2012 или 2014. http://articledwh.blogspot.com/2016/05/how-to-add-microsoft-adventureworks2012.html