Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с подключением базы  [new]
magvik
Member

Откуда:
Сообщений: 11
День добрый

Есть MS SQL Server 2012 на локальном компе (Windows 10).
select @@version

Microsoft SQL Server 2012 (SP3-CU9) (KB4016762) - 11.0.6598.0 (X64) 
Apr 18 2017 17:03:30
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.3 <X64> (Build 14393: )

служба SQL Server запущена под учетной записью NT Service\mssql$srv12dev
создаем тестовую базу в каталоге c:\sql

create database db1
on primary (name = db1, filename = 'c:\sql\db1.mdf')
log on (name = db1_log, filename = 'c:\sql\db1.ldf')


база создалась, всё ОК
Отсоединяем базу и переносим в каталог, к примеру, на диск D:\sql, потом обратно в исходный каталог c:\sql

Т.о. в каталоге c:\sql есть файлы БД в варианте "прошедшие двойное копирование" (точнее двойное перемещение)
Перемещение проводилось пользователем pc1\user1, который является локальным администратором на ПК

Пытаемся присоединить базу обратно:
exec sp_attach_db @dbname = 'db1', @filename1 = 'c:\sql\db1.mdf', @filename2 = 'c:\sql\db1.ldf'

неудача:
Сообщение 5120, уровень 16, состояние 101, строка 1
Не удалось открыть физический файл "c:\sql\db1.mdf". Ошибка операционной системы 5: "5(Отказано в доступе.)".


Похоже прав нет на файл, ок - смотрим что там у нас с правами.
Беру файл c:\sql\db1.mdf
Правая мышь - Свойства - Безопасность - Дополнительно - Действующие права доступа, выбираю учетную запись службы сервера
NT Service\MSSQL$SRV12DEV - Просмотреть действующие разрешения. Прав действительно нет.
Добавляю полные права, проверяем:

C:\WINDOWS\system32>icacls c:\sql\db1.mdf
c:\sql\db1.mdf NT SERVICE\MSSQL$SRV12DEV:(F)
...

C:\WINDOWS\system32>icacls c:\sql\db1.ldf
c:\sql\db1.ldf NT SERVICE\MSSQL$SRV12DEV:(F)
...

Опять attach и опять неудача (всё как в прошлый раз),
Дополнительно даю учетной записи NT Service\MSSQL$SRV12DEV полные права на каталог c:\sql

C:\WINDOWS\system32>icacls c:\sql\
c:\sql\ NT SERVICE\MSSQL$SRV12DEV:(OI)(CI)(F)
...

Очередной attach и очередная неудача.
Смотрим что владельцем и базы и лога является pc1\user1 (поскольку копировали под ним).
Меняем владельца файлов базы на NT Service\MSSQL$SRV12DEV и очередная попытка

exec sp_attach_db @dbname = 'db1', @filename1 = 'c:\sql\db1.mdf', @filename2 = 'c:\sql\db1.ldf'

Сообщение 5120, уровень 16, состояние 101, строка 1
Не удалось открыть физический файл "c:\sql\db1.mdf". Ошибка операционной системы 5: "5(Отказано в доступе.)".


Что здесь не так?
28 июн 17, 16:30    [20597383]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
magvik
Member

Откуда:
Сообщений: 11
Когда запустил службу SQL Server под локальным администратором, назначил его владельцем файлов базы - всё пошло, база атачится.
Детально сравнил права локального администратора и учетной записи NT Service\MSSQL$SRV12DEV.
На уровне каталога и файлов - права одинаковы, но на уровне диска у NT Service\MSSQL$SRV12DEV прав нет (в отличие от админа).
Не хотелось бы давать права на диск - или иначе никак?
28 июн 17, 16:42    [20597421]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
magvik
Детально сравнил права локального администратора и учетной записи NT Service\MSSQL$SRV12DEV.
А права на вашу базу, и на другие базы сравнивали?
srv12dev - это имя инстанса?
28 июн 17, 18:05    [20597744]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
magvik
Member

Откуда:
Сообщений: 11
alexeyvg,

srv12dev - да, это имя инстанса
на первый вопрос чуть позже отвечу
28 июн 17, 18:15    [20597773]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
magvik
на первый вопрос чуть позже отвечу
На все файлы стандартно должны быть права у виртуального аккаунта сиквела, то есть у NT Service\MSSQL$SRV12DEV
Ещё есть права у группы админов и OWNER RIGHTS
28 июн 17, 18:31    [20597801]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
alexeyvg
Ещё есть права у группы админов и OWNER RIGHTS
Подчеркну ещё раз - без прав группы администраторов на этот файл он не приаттачится, в документации про это написано.
28 июн 17, 18:38    [20597814]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
alexeyvg
alexeyvg
Ещё есть права у группы админов и OWNER RIGHTS
Подчеркну ещё раз - без прав группы администраторов на этот файл он не приаттачится, в документации про это написано.
Вот сценарий переноса: https://msdn.microsoft.com/en-us/library/ms189128.aspx
28 июн 17, 18:39    [20597818]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
KRS544
Member

Откуда:
Сообщений: 497
Скорее всего права на файлы переписались в папке D:\sql, стоит наследование.
28 июн 17, 19:34    [20597918]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
rahzer
Member

Откуда:
Сообщений: 2291
Да, не стоит забывать про настройки UAC (в операционке), у нас как-то DBA даже под учеткой доменного админа билась с ошибкой, пока UAC не настроили.
28 июн 17, 19:59    [20597956]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
magvik
Member

Откуда:
Сообщений: 11
Создал параллельно базе db1 базу db2, которую никуда не переносил и с которой detach - attach проходят без проблем.
Решил сравнить права на файлы базы (Мышь правая - Свойство - Безопасность ...), в общем конечные права доступа учетной записи SQL Server - NT Service\MSSQL$SRV12DEV к файлам первой и второй базы одинаковы (полные права), хотя вид окон пока добирался до вкладки "Действующие права доступа" для разных баз чуть различался (т.е. отличия какие-то есть).
Похоже дело в UAC, поскольку после того как запустил Management Studio с правами администратора - всё заработало. База атачится и после переноса и с учетом того что владельцем стал пользователь pc1\user1 (локальный админ).
Для себя еще поразбираюсь по ссылке от alexeyvg , поскольку некоторые вопросы остались.
Всем спасибо.
29 июн 17, 10:58    [20598883]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
magvik
в общем конечные права доступа учетной записи SQL Server - NT Service\MSSQL$SRV12DEV к файлам первой и второй базы одинаковы (полные права)
я же писал, этого недостаточно, нужно выдать ещё одни права.
29 июн 17, 23:38    [20601183]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
magvik
Member

Откуда:
Сообщений: 11
По правам: вкладываю два фала - копии экранов.
Мне кажется дело в чем-то другом, с правами я много экспериментировал - не шло.
Кстати, интересно - код простой, никто у себя не проверял detach / attach?

К сообщению приложен файл. Размер - 52Kb
30 июн 17, 11:57    [20602368]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
magvik
Member

Откуда:
Сообщений: 11


К сообщению приложен файл. Размер - 54Kb
30 июн 17, 11:57    [20602370]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
magvik
По правам: вкладываю два фала - копии экранов.
Мне кажется дело в чем-то другом, с правами я много экспериментировал - не шло.
Кстати, интересно - код простой, никто у себя не проверял detach / attach?
При чём тут права у NT Service\MSSQL$SRV12DEV?
Покажите вкладку "Разрешения"
30 июн 17, 12:32    [20602490]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
magvik
Кстати, интересно - код простой, никто у себя не проверял detach / attach?
Проверю через часик, пока недоступен рабочий комп.
30 июн 17, 12:33    [20602494]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
alexeyvg
magvik
Кстати, интересно - код простой, никто у себя не проверял detach / attach?
Проверю через часик, пока недоступен рабочий комп.
Нормально всё проходит.
Но я сисадмин, коннекчусь к сиквелу под вин-авторизацией, и копирую файлы тоже под собой.
Поэтому он может сам переназначить все эти права.
То есть при создании базы назначает доступ NT Service\MSSQL$Instance, группе админов и OWNER RIGHTS
при детаче отбирает у них права, и назначает мне.
при аттаче отбирает у меня и назначает обратно NT Service\MSSQL$Instance, группе админов и OWNER RIGHTS
30 июн 17, 14:22    [20603023]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с подключением базы  [new]
magvik
Member

Откуда:
Сообщений: 11
alexeyvg,

К сообщению приложен файл. Размер - 27Kb
30 июн 17, 14:45    [20603156]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить