Доступ запрещен при подключении базы данных

147

Я использую SQL Server 2008 для разработчиков. Я пытался прикрепить базу данных AdventureWorks2008.

Когда я попытался подключиться, я получил сообщение об ошибке «Отказано в доступе». Согласно журналу событий, он пришел из O / S:

Ошибка открытия: не удалось открыть файл D: \ ProjectData \ AdventureWorks \ AdventureWorksLT2008_Data.mdf для файла № 0. Ошибка ОС: 5 (доступ запрещен.).

Я думал, что «проблема NTFS», но система (и я) имеют право доступа к обоим файлам.

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

Я являюсь членом группы локальных администраторов на моем компьютере и играю роль sysadmins в экземпляре SQL Server.

Есть идеи, почему я должен был войти в систему как sa?

JMarsch
источник
Файл MDF зашифрован случайно?
Бретцки
Нет, настоящим любопытством для меня является то, что он работает нормально, если я вхожу в систему как sa (используя Management Studio), но не работает, если я использую свою локальную учетную запись администратора. Моя учетная запись - это администратор, администратор домена, и это учетная запись, под которой я вошел в систему при установке SQL Server (во время установки была возможность сделать мою текущую учетную запись системным администратором, и я так и сделал).
JMarsch
1
Так работает UAC в W7, что неудивительно.
Аль Кепп
@AlKepp Нету - не вещь UAC. Просто войдите в систему как sa, чтобы исправить (учетная запись сервера SQL, не имеет ничего общего с UAC) проблему. Кроме того, просто будучи членом группы локальных администраторов, я получаю свои разрешения - мне не нужно повышать уровень, чтобы мои учетные данные AD работали.
JMarsch

Ответы:

162

Запустите SQL Server Management Studio от имени администратора. (щелкните правой кнопкой мыши -> запустить от имени администратора), который позаботился обо всех странностях в моем случае.

SQL SRV EXPRESS 2008 R2. Windows 7

MandoMando
источник
5
Запуск Management Studio в качестве администратора НЕ работал для меня. Эта ошибка возникает при попытке запустить службу Windows.
nuzzolilo
9
Запуск от имени администратора - это первый шаг. Второй шаг - вход в SQL Server с помощью аутентификации Windows. (Этот метод сработал для меня!)
Фуркан Экинчи
3
У меня тоже сработало. Невозможно выразить словами, как утомляют и расстраивают разрешения и ошибки в Windows. Я АДМИНИСТРАТОР!
Дэвид Мастерс
У меня тоже сработало. Сначала я не думал, что это сработает, потому что SSMS - это просто UI-клиент. Я думал, что служба должна быть запущена от имени администратора. Но достаточно запустить SSMS от имени администратора.
Люк Во
2
У меня тоже сработало. SQL Server 2019, SSMS 18.4
Райан Томас,
105

Спасибо за все комментарии. Некоторые из вас помогли мне привести ответ. Вот что я нашел:

Это была проблема с разрешениями NTFS, а не проблема SQL. Кроме того, это выглядит как ошибка (и это повторяется).

Проблема: у учетной записи, которую я использовал, были полные права доступа NTFS к файлам mdf и ldf. Однако у него были эти разрешения через членство в группе (у группы «Локальные администраторы» были разрешения, а моя учетная запись является членом локальных администраторов). (Я проверил разрешения)

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

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

(о, да, я проверил локальные группы на этом компьютере и проверил, что моя учетная запись домена действительно является членом группы локальных администраторов).

Таким образом, похоже, что ошибка возникает из-за того, что некоторый код (либо в SQL Server, либо в Management Studio) проверяет разрешения, которые имеет учетная запись пользователя, но не заходит так далеко, чтобы проверять разрешения группы, которые эта учетная запись наследует.

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

Обновление: я сообщил об этом как об ошибке: https://connect.microsoft.com/SQLServer/feedback/details/539703/access-denied-attaching-a-database-when-permissions-are-inherited

JMarsch
источник
104
Если, как и я, вы используете Windows 7, вам придется запустить SQL Server Management Studio от имени администратора, чтобы избежать этой ошибки.
Энтони
4
Воспроизводится на Win7 Pro с использованием SS2008 Express. Одна и та же проблема для sqlcmd и SSMS. == Meldung '5120', Ebene '16', Status '101', Сервер 'DAGO \ SQLEXPRESS', Zeile 1 - 'Die physische Datei' D: \ data \ mssql \ drei.mdf 'kann nicht geöffnet werden. Betriebssystemfehler 5: '5 (Zugriff verweigert) == Предоставление полного доступа пользователю (который является членом локальной группы администраторов, у которого есть доступ) устраняет проблему. Кроме того, запуск sqlcmd (или SSMS, я полагаю) в качестве администратора не приводит к этой ошибке.
Луми
1
Энтони Хайски имеет ответ. Просто нужно обязательно запустить Management Studio от имени администратора.
Джеймс
Та же проблема и решение для меня. 2008R2, Win 7 и т. Д. Просто явно добавили себя в список безопасности, и это сработало. Я полагаю, что SQL Server может читать их, после подключения, но не под моими учетными данными при подключении?
Эндрю Бакер
4
Запуск Management Studio в качестве администратора НЕ работал для меня. Эта ошибка возникает при попытке запустить службу Windows.
nuzzolilo
20

Я хотел бы добавить дополнительную информацию к ответам, которые были опубликованы.

Будьте осторожны при отсоединении базы данных, потому что пользователь Windows, в который вы вошли, становится единственным пользователем с разрешениями на файл .mdf! Исходные разрешения .mdf-файла, которые включали пользователя SQLServerMSSQLUser$<computer_name>$<instance_name>и учетную запись администратора, будут перезаписаны любым пользователем Windows, в котором вы вошли (не пользователем SQL Server). Бум, все разрешения ушли просто так. Сделайте так, как сказали другие, и щелкните правой кнопкой мыши свой файл .mdf и дважды проверьте разрешения.

Я столкнулся с этой проблемой, потому что я использовал SSMS для подключения к базе данных (неважно, какая учетная запись сервера sql) и отключил базу данных. После этого мой пользователь Windows был единственным, у кого были какие-либо права доступа к файлу .mdf. Поэтому позже, когда я попытался подключить БД с использованием учетной записи sa, он выдал ошибку «Отказано в доступе».

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

USE [master]
GO
-- kick all users out of the db
ALTER DATABASE mydb
SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
GO

-- Take the Database Offline
ALTER DATABASE mydb SET OFFLINE WITH
ROLLBACK IMMEDIATE
GO

-- detach the db
EXEC master.dbo.sp_detach_db @dbname = N'mydb'
GO
goku_da_master
источник
1
Спасибо за это! Я думаю, что намного проще сделать это правильно, если вы также вошли в систему с использованием учетной записи с проверкой подлинности SQL Server с привилегиями serveradmin.
Уильям Роуз
К сожалению, это не поможет мне, если я изначально создал базу данных как 'sa', а не как пользователь Windows
Дэвид Гардинер
«Будьте осторожны при отсоединении базы данных». Скажите SSMS, чтобы быть осторожным. Мои проблемы возникли из-за того, что при использовании SSMS команда «Копировать базу данных» не смогла
Алан Макдональд,
18

Добавьте разрешение в папку, где ваш .mdf файл.

Проверьте это имя: NT Service\MSSQLSERVER

И измените имя Locationвашего сервера.

Leonardo
источник
5
Чтобы найти точное имя учетной записи, так как она может варьироваться от экземпляра к экземпляру, выполните следующее: SELECT servicename, service_account FROM sys.dm_server_services.
Арве Систад
13

Эта проблема вызвана UAC (контроль учетных записей), не так ли? Хотя ваша учетная запись является членом группы «Администраторы», UAC в Windows 7 не позволяет вам выполнять действия администратора, если вы не запускаете программы «как администратор». Это не настоящая ошибка в SQL Server или Management Studio или что-то еще. (Хотя он мог бы знать проблему и попросить у вас повышенные разрешения вместо того, чтобы просто жаловаться на «ошибку 5».)

Аль Кепп
источник
11

Запустите SQL Server Management Studio от имени администратора. (щелкните правой кнопкой мыши -> запустить от имени администратора) работал для меня с Windows 7 - SQL Server 2008 R2

Ролвин Крэста
источник
1
Этот ответ должен быть поддержан. Запуск SSMS в качестве администратора - это обходной путь, который копирует этот ответ. Microsoft сообщает об этом как об «ожидаемом поведении» здесь: ссылка
FreeText
Разве это не то же самое, что ответ Мандомандо?
заклад
10

База данных SQL2005 может быть присоединена таким образом в Windows 7:

start menu >
 all program >
  Microsoft sql server 2005 >
   sql server management studio >
    right click >
     run as administrator >
      click ok

И тогда присоединенная база данных успешно завершена.

Рахул Гарг Аггарвал
источник
Это работало с SQL Server 2016 с Management Studio 2008 R2 в Windows 10 :)
пар
9

Когда вы входите в систему под saучетной записью (или любой другой учетной записью Sql Server), вы действуете как учетная запись службы SQL Server. Когда вы входите в систему как вы, у вас есть разрешения для вашей учетной записи. По какой-то причине у вас нет доступа к соответствующему файлу, но у учетной записи службы есть.

Ник Крейвер
источник
Проблема NTFS была первой вещью, о которой я тоже подумал, но, похоже, проблема не в этом: я являюсь членом группы локальных администраторов, и я убедился, что у администраторов есть права «полного контроля» для файлов mdf и ldf. , Кроме того, я владелец файлов - я только что создал каталог и сам скопировал файлы mdf / ldf в их расположение.
JMarsch
@JMarsch: @Nick говорит, что у sa есть набор прав SQLSERVER, а не прав NTFS, которых нет у вашей учетной записи.
Trevoke
@Trevoke: я с тобой. Если это так, то какие права мне нужно назначить моей учетной записи? (Я уже назначен на роль
системного
1
Старый ответ, но для таких, как я, пять минут назад: точное имя пользователя службы можно узнать, запустивSELECT servicename, service_account FROM sys.dm_server_services
Arve Systad
6

Я нашел это решение: щелкните правой кнопкой мыши папку, в которой вы храните свой файл .mdf -> щелкните "Свойства" -> выберите вкладку "Безопасность", нажмите "Изменить ..." и предоставьте ему полный контроль. Надеюсь это поможет!

Quokka
источник
5

В saиспользуют учетные записи пользователей NTFS SQLServerMSSQLUser$<computer_name>$<instance_name>иSQLServerSQLAgentUser$<computer_name>$<instance_name> доступ к файлам базы данных. Вы можете попробовать добавить разрешения для одного или обоих этих пользователей.

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

djeidot
источник
5

Со мной - Запуск в окне 8 - Правильно нажмите SQL Server Manager Studio -> Запустить с правами администратора. -> прикрепить без проблем

Серый волк
источник
5

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

Ema.H
источник
3

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

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

Не я
источник
Во многих ситуациях я бы согласился с вашей точкой зрения, но для SQL-сервера вам часто нужно иметь возможность размещать базы данных на разных шпинделях или томах для масштабируемости. Фактически, для повышения пропускной способности транзакций принято размещать журнал транзакций отдельно от базы данных.
JMarsch
@JMarsch: Да ... каталоги фактически настраиваются через вкладку Свойства сервера> Параметры базы данных для данных по умолчанию и местоположений журналов ...
NotMe
Это охватывает значения по умолчанию, но это только значения по умолчанию. Вполне допустимо размещать dbs в другом месте, и это действительно не редкость, если ваш сервер управляет более чем 1 активно используемой базой данных.
JMarsch
У меня такая же проблема даже с каталогом сервера sql по умолчанию: c: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.SPATIAL_IM \ MSSQL \ DATA \ mydb.mdf на win7.
goku_da_master
3

Я просто хотел добавить эту информацию.

http://www.mssqltips.com/sqlservertip/2528/database-attach-failure-in-sql-server-2008-r2/

Решение

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

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

Щелкните правой кнопкой мыши файл «filename.mdf» и выберите свойства, чтобы проверить права доступа к файлу mdf. Здесь мы можем видеть, что только одна учетная запись имеет разрешение на файл «filename.mdf», потому что это была учетная запись, которая использовалась для отсоединения базы данных.

Чтобы решить эту проблему, нажмите кнопку «Добавить ...», чтобы добавить другой логин или любой другой необходимый логин и дать ему полный доступ. Вы должны сделать это и для файла "ldf". После выполнения этой задачи нажмите кнопку ОК. (Обратите внимание, что для других версий ОС у вас может быть опция «Изменить», сначала нажмите эту кнопку, а затем вы увидите опцию «Добавить ...».)

stormwild
источник
Я изменил свое соединение в SSMS, чтобы соответствовать пользователю, который выполнил открепление, и я смог выполнить присоединение.
glitzsfa
2

Из-за того, что это стоит каждому, у кого есть конкретный вариант этой проблемы, который у меня был:

  • SQL Express 2008
  • Visual Studio 2010 Premium

Через контекстное меню папки App_data я создал базу данных SQL Express для целей отладки. Строка подключения (используемая NHibernate) была следующей:

Server=.\SQLExpress;
AttachDbFilename=|DataDirectory|DebugDatabase.mdf;
Database=DebugDatabase;
Trusted_Connection=Yes;

Это дало мне ту же ошибку «Отказано в доступе» в файле базы данных. Я пытался дать различным пользователям полный доступ к папке и файлам, в какой-то момент даже к «Все». Ничего не помогло, поэтому я снова удалил добавленные разрешения.

Что окончательно решило это открыть обозреватель серверов в Visual Studio, затем подключиться к MDF и снова отсоединить его. После того, как я это сделал, мое веб-приложение могло нормально обращаться к базе данных.

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

Йерун
источник
2

Я переместил базу данных mdf из папки данных по умолчанию в папку asp.net app_data и столкнулся с этой проблемой, пытаясь вернуть базу данных в оперативный режим.

Я сравнил параметры безопасности других файловых баз данных в исходном расположении с перемещенными файлами и заметил, что MSSQL $ SQLEXPRESS не были назначены разрешения для файлов в их новом расположении. Я добавил Полный контроль для "NT SERVICE \ MSSQL $ SQLEXPRESS" (должен включать в себя этот NT SERVICE), и он просто подключен.

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

Я проверил mdf-файл другого проекта, который я создал непосредственно в его папке app_data. у него нет разрешений MSSQL $ SQLEXPRESS. Хммм. Интересно, почему SQL Express любит одно, а не другое?

Брэд Мэтьюз
источник
Это решение работало для меня в Windows 10 и SQL Server 2017 при перемещении файла журнала на отдельный диск. В моем случае имя пользователя было «NT SERVICE \ MSSQLSERVER»
Джон Хэнли
1

Это похоже на разрешения NTFS. Обычно это означает, что ваша учетная запись службы SQL Server имеет доступ к файлу только для чтения (обратите внимание, что SQL Server использует одну и ту же учетную запись службы для доступа к файлам базы данных независимо от того, как вы входите в систему). Вы уверены, что не меняли права доступа к папкам между входом в систему как самим собой и входом в систему как sa? Если вы отсоединитесь и попробуете снова, у вас все еще будет та же проблема?

Адриан О'Коннор
источник
В моем случае нет - я сделал это несколько раз, чтобы убедиться. Проблема заключалась в том, что моя учетная запись имела доступ к файлам только через уровень косвенности - я был членом группы Domain Admin. Администратор домена был членом группы локальных администраторов на машине, и локальные администраторы (и система) имели полный контроль над папкой. (так было 2 уровня групповой косвенности). Если бы я назначил разрешения непосредственно себе, это сработало, если бы я их удалил, я все равно мог копировать / удалять файлы из Explorere и т. Д., Но SQL Server не мог их загрузить.
JMarsch
Когда попробуйте прикрепить базу данных. Войдите в систему, Windows authenticated userчтобы помочь нам преодолеть права на файлы базы данных. (В этом случае экземпляр MS SQLServer на диске, на котором установлена ​​ОС Windows).
До Нху Вы
1

У меня была такая же проблема при подключении базы данных. Это не было проблемой SQL, это была проблема учетной записи. Перейдите в панель управления / Настройки контроля учетной записи пользователя / Установите «никогда не уведомлять». Наконец, перезагрузите компьютер, и он работал для меня.

Paola
источник
1

Я прикрепил файл mdf, щелкнув правой кнопкой мыши базу данных и удалив файл журнала AdventureWorks2012_Data_log.ldf в мастере. Файл mdf был размещен в следующем месте

    C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA

Вышеуказанный метод помог мне решить проблему.

Praveen
источник
1

Я читал эту страницу, и там есть интересное предложение:

Внимание: будьте очень избирательны при добавлении пользователей к этим ролям. Например, sysadmin сопоставляется с dbo в каждой базе данных и является эквивалентом входа в систему с использованием учетной записи sa.

Конечно, у них также есть это:

Разрешения, которые предоставляются пользователям и ролям и зависят от базы данных. Все разрешения являются накопительными, за исключением DENY. Запрещенное разрешение на уровне пользователя или на уровне роли переопределяет то же разрешение, которое предоставляется другими членствами в ролях, за исключением фиксированной серверной роли sysadmin. (Системный администратор сохраняет все разрешения, даже если роль, членом которой он является, имеет разрешение DENY.)

Так что если вы администратор домена и входите в группу SQL 'sysadmin', мир должен быть вашим раком.

Конечно, согласно Microsoft, вы должны быстро взглянуть на эти две страницы:
ссылка на базу данных

Ссылка на установку баз данных

Вы непослушны и пытаетесь прикрепить их вручную :) Если серьезно, есть ли у вас все предпосылки для базы данных AdventureWorks2008?
Я подозреваю, что это просто еще один случай Microsoft, но я могу ошибаться.

Trevoke
источник
+1, потому что ваш комментарий помог мне найти ответ. Я опубликую свои выводы в этой теме. Кстати (я был "непослушным" из-за очень странных политик, в которых я работаю - база данных adventureworks распространяется как exe-файл. Я не могу скачать exe-файлы. (Я могу скачивать zip-файлы и MSI-файлы, поэтому не вижу как exe-фильтрация действительно делает что-то другое, кроме как мешать, но таковы правила). Во всяком случае, я мог бы получить сырые mdf-файлы в виде zip из codeplex, и именно тогда я столкнулся с этим небольшим любопытством.
JMarsch
1

введите описание изображения здесь

USE [master]
GO
CREATE DATABASE [DataBasename] ON 
( FILENAME = N'C:\data\DataBasename.mdf' )
 FOR ATTACH
GO

изменить на FOR ATTACH -> FOR ATTACH_FORCE_REBUILD_LOG

USE [master]
GO
CREATE DATABASE [DataBasename] ON 
( FILENAME = N'C:\data\DataBasename.mdf' )
 FOR ATTACH_FORCE_REBUILD_LOG
GO
Валентин Петков
источник
Спасибо, вы спасли мой день
Шахрохян
1

Я получил эту ошибку как sa. В моем случае безопасность базы данных не имела значения. Я добавил всем полный контроль над файлами mdf и ldf, и прикрепление прошло нормально.

toddmo
источник
1

Я столкнулся с той же проблемой в VS 2019. Если кто-то все еще сталкивался с той же проблемой, пожалуйста, убедитесь, что у вас есть / делаете следующие вещи:

  1. У вас должен быть установлен SQL Express на вашем компьютере
  2. Если в VS установлен SSDT (в VS 2019 - обязательно проверьте этот компонент при установке) для предыдущих версий - вы должны добавить этот компонент извне
  3. Добавьте 'User Instance = True' в строку подключения
  4. Я думаю, что это необязательно - открыть VS и SQL Express в административном режиме и войти в систему как администратор SQL Express
Ashu_90
источник
0

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

Чтобы решить эту проблему в Windows 7, я обычно запускал SQL Server Management Studio (не как администратор). Затем я попытался прикрепить файл MDF. В процессе я использовал пользовательский интерфейс, а не вставил в путь. Я заметил, что путь был отрезан от меня. Это связано с тем, что пользователь MS SQL Server (SQLServerMSSQLUser $ machinename $ SQLEXPRESS), добавляемый для вас программным обеспечением, не имеет прав доступа к папке (в данном случае папка находится глубоко в моих собственных пользовательских папках).

Вставка пути и продолжение приводит к вышеуказанной ошибке. Итак, я дал пользователям MS SQL Server права на чтение, начиная с первого каталога, в котором ему было отказано (моя папка пользователя). Затем я немедленно отменил операцию распространения, потому что это может занять вечность, и снова применил разрешения на чтение к следующей необходимой подпапке, и позволил этому распространиться полностью.

Наконец, я дал пользователю MS SQL Server права на изменение файлов .mdf и .ldf для БД.

Теперь я могу прикрепить к базе данных файлы.

Крис Москини
источник
0

Если вы запускаете sql server 2012, вы можете получить эту ошибку, пытаясь прикрепить более старую версию mdf-файла. ex файл mdf с сервера sql 2008.

Эрик Форсмир
источник
Я думаю, что эта часть была относительно очевидна. было бы хорошо узнать, как это разобраться.
Дансан
0

Я решил проблему, просто переместив файл .mdf, который вы хотите прикрепить, в общую папку, в моем случае я переместил его в папку users / public. Тогда я прикрепляю его оттуда без проблем. Надеюсь это поможет.

databaseUser
источник
0

Для тех, кто не мог решить проблему с другими решениями здесь, мне помогло следующее исправление:

Перейдите в папку «DATA» в установке SQL Server, щелкните правой кнопкой мыши, выберите свойства, вкладку «Безопасность» и добавьте права полного доступа для пользователя «NETWORK SERVICE».

http://decoding.wordpress.com/2008/08/25/sql-server-2005-expess-how-to-fix-error-3417/

(Ссылка выше для SQL 2005, но это исправило установку SQL 2008 R2 для меня).

Некоторая дополнительная информация: эта проблема появилась у меня после замены дополнительного жесткого диска (на котором была установлена ​​установка SQL). Я скопировал все файлы и восстановил исходную букву диска на новый жесткий диск. Однако разрешения безопасности не были скопированы. Я думаю, что в следующий раз я буду использовать лучший метод копирования данных.

nuzzolilo
источник
0

В моем случае проблема была решена следующим образом:

USE [master]
GO
CREATE DATABASE [AdventureWorks2008R2] ON
( FILENAME = 'C:\Program Files\Microsfot SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\AdventureWors2008R2_Data.mdf')
FOR ATTACH_REBUILD_LOG
Ник_
источник
0

Скопируйте базу данных в другую папку и прикрепите или войдите в SQLServer с помощью «Аутентификация Windows»

введите описание изображения здесь

Chưa biết
источник
0

У меня была такая же проблема при повторном присоединении базы данных после ее отсоединения и перемещения файлов ldf и mdf с диска C на F.

Чтобы это исправить, мне нужно было добавить участника OWNER RIGHT в оба файла и дать ему полный контроль над ними на вкладке Security диалогового окна Properties.

Искусство
источник