Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

MS SQL - перенесенные базы подключаются только в read-only (только для чтения)

Практика



Итак, вводная: у нас есть сервер Microsoft SQL Server, установленный на Windows Server 2008 или выше. Причем не важно - имеем ли мы SQL Standard, SQL Enterprise или SQL Express - ситуация будет одинаковой.

Пока базы данных лежат по своему пути по-умолчанию, т.е. в Program files, все с ними хорошо. Но как только мы перенесем их в другой каталог (а тем более - на другой диск) - сразу появляются проблемы.

Проблемы заключаются в том, что либо MS SQL Server не желает подключать (аттачить) вовсе перенесенные базы данных, либо подключает, но только в режиме "только для чтения" (т.е. read-only).


Решение.

Проблема заключается в правах на папку, куда Вы перенесли базы данных. Дело в том, что изначально MS SQL Server прав на запись туда не имеет, соответственно, и работает не так.

Чтобы узнать - какие права нужны для этой папки - нужно пройти по адресу, где эти базы лежат по-умолчанию на данном сервере (например,
C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL

), нажать правой кнопкой мыши на папке с базами данных (как правило - "DATA"), в контекстном меню выбрать "Свойства", далее перейти на вкладку "Безопасность" и посмотреть текущие права.

Вы увидите там надпись вида "SQLServerMSSQLUser$HOSTNAME$SQLExpress" или типа того (вместо HOSTNAME - имя Вашего сервера, вместо SQLExpress - имя инстанции или ничего).

 
Теперь топаем туда, куда Вы базы скопировали, и добавляем эту группу с полными правами в безопасность (кстати да, это группа, а не пользователь).

А вот отсюда читаем внимательно! Просто так, введя частично имя группы и нажав на кнопку "Проверить имена" Вы ее не добавите! Windows будет себя вести так, как будто такого группы нет в ни в системе, ни в домене - нигде вообще. Почему это сделано - загадка (ибо безопасности оно не добавляет - отчаившись, админы добавляют группу "Все" и дают максимальные права на папку).
Вводить имя группы нужно ПОЛНОСТЬЮ. Каждый блин символ! Один в один, вот прямо как написано во вкладке "Безопасность" папки "DATA", где на ЭТОМ сервере лежат базы по-умолчанию. Если не введете хотя-бы один символ - группа не распознается. И неважно - какие объекты для поиска Вы выбираете - все равно пока не введете символ в символ - ОС будет говорить, что такого объекта не существует.


Итак, добавили группу с максимальными правами к папке, где сейчас лежат нужные базы данных - и снова пробуем присоединить их в MS SQL Server. Теперь должно получиться.

 

Актуально для: Microsoft SQL Server 2008 (возможно, 2005) + Windows Server 2008 и выше
 
создано: 2017-05-09
обновлено: 2020-10-31
140067



Рейтиг 10 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

MySql (Maria DB)

Термины: MySql (Maria DB)