Ошибка SQL Server 5123 при подключении базы данных - PullRequest
0 голосов
/ 08 июня 2018

У меня есть две базы данных.Оба находятся в одной папке.Насколько я могу судить, оба имеют одинаковые права собственности и разрешения.Я могу прикрепить одно, но не другое - я получаю сообщение об ошибке 5123.

Для обоих файлов ...

  • Владелец - MSSQLSERVER

Разрешения:

  • MSSQLSERVER - Полный контроль

  • ПРАВА ВЛАДЕЛЬЦА - Полный контроль

  • Администраторы - Полный контроль

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

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Все файлы на платформе ОС имеют права доступа.Помните, что для оптимальной безопасности DENY всегда отменяет любые разрешенные разрешения.База данных SQL Server имеет физические файлы (.MDF, .NDF и .LDF). Эти файлы, как и любые другие файлы на сервере, имеют права доступа.

В вашем сценарии ошибки SQL Server 5123 вы пытаетесь присоединить файл базы данных к экземпляру, где ваши учетные данные не имеют необходимых прав доступа к файлу.Хитрость здесь в том, что тот, кто изначально отключил файл базы данных, автоматически назначается владельцем и никем другим.

Чтобы это исправить, вы должны предоставить права R / W или FULL для учетной записи, пытающейся прикрепить файл.Примечание. Если для базы данных существует несколько файлов, которые, скорее всего, будут, вам необходимо убедиться, что свойства безопасности каждого файла установлены правильно для пользователя, выполняющего ATTACH.

Вы также можете прочитать этот блог для получения более подробной информации: https://www.stellarinfo.com/blog/sql-server-2008-r2-database-error-5123/

0 голосов
/ 08 июня 2018

Я до сих пор не уверен, что происходит, но у меня все заработало без запуска SSMS в качестве администратора.Ранее, когда я сменил владельца с MSSQLSERVER на свой профиль, я получил ту же ошибку.Затем я заметил, что на вкладке «Безопасность» диалогового окна «Свойства», когда я выбрал «ПРАВА СОБСТВЕННИКА» в разделе «Имена групп или пользователей», указанные разрешения были пустыми как для разрешения, так и запрета.Я нажимал «Дополнительно», и с этой точки зрения ВЛАДЕЛЬЦАМ ПОЛЬЗОВАТЕЛЯ были проверены все разрешения.На этот раз я нажал «Изменить» и увидел, что все флажки не установлены, поэтому я установил все для «Разрешить».Это сработало.Я не разбираюсь в безопасности Windows, поэтому понятия не имею, что происходит, но я снова в деле.И я до сих пор не понимаю, почему, когда все БД принадлежали MSSQLSERVER, одна база данных подключалась, а две другие - нет, несмотря на то, что они имели одинаковый набор разрешений.

...