У меня есть виртуальная машина SQL 2005 под управлением Windows 2003 на сервере 2008 под Hyper-v, и мне нужно начать резервное копирование моих баз данных в общую папку. Я без проблем создавал аналогичные задания резервного копирования в других средах. Разница в том, что во всех остальных случаях SQL-сервер был частью домена, и в этом случае нет домена. Даже когда я установил для общей папки разрешение «Полный доступ» для «всех», SQL по-прежнему отказывается запускать задание резервного копирования:
Ошибка операционной системы 1326 (ошибка входа: неизвестное имя пользователя или неверный пароль). BACKUP DATABASE завершает работу ненормально. ". Возможные причины сбоя: проблемы с запросом, свойство" ResultSet "неправильно установлено, параметры установлены неправильно или соединение установлено неправильно.
Что мне нужно сделать? Нет ли другого решения, кроме как просто создать резервную копию на локальном диске и найти другой способ скопировать файлы?
изменить: выделено жирным шрифтом
Учетная запись службы SQL Server должна иметь доступ к общему сетевому ресурсу. Если вы запускаете службу SQL Server с использованием учетной записи Localsystem: эта учетная запись не имеет доступа к общим ресурсам в сети, потому что это не аутентифицированная сетевая учетная запись, что делает невозможным резервное копирование в обычный сетевой ресурс.
Итак, если вы хотите сделать резервную копию на сетевом ресурсе, вы можете сделать две разные вещи:
Измените учетную запись, в которой работает служба SQL Server, на учетную запись домена (DOMAIN \ USERNAME), которая может получить доступ к общему сетевому ресурсу и имеет необходимые разрешения.
или (не рекомендуется в производственной среде):
Добавьте следующее значение реестра на сервере с общим сетевым ресурсом и добавьте имя общего ресурса, для которого вы хотите выполнить резервное копирование - в этом случае общий ресурс не аутентифицирует, кто входит, поэтому учетная запись Localsystem будет иметь доступ. Чтобы изменения вступили в силу, необходимо перезапустить сервер. Обратите внимание, что это эффективно удаляет всю безопасность на этом общем ресурсе, так что вы даете доступ кому угодно.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\NullSessionShares
Если у вас нет домена, вы можете настроить одного пользователя (имя) на всех машинах, а затем использовать локального пользователя для запуска SQL Server.
Например, на ServerA (на котором запущен SQL Server) я могу настроить пользователя MySQLServerUser как локального пользователя. Используйте Configuration Manager, чтобы установить его в качестве учетной записи для запуска SQL Server.
Затем на ServerB, куда я хочу отправить резервные копии, я настроил ту же учетную запись (MySQLServerUser) с тем же паролем.
Поскольку Windows передаст это как первого пользователя / пароля, она должна пройти аутентификацию.
Обратите внимание, что резервное копирование по сети не рекомендуется. Процесс резервного копирования SQL не терпит сетевых задержек. Все, что вызывает сбой, приведет к сбою резервного копирования. И это, скорее всего, произойдет, когда ваши диски выйдут из строя. Сделайте резервную копию локально, скопируйте на удаленную машину. Копии будут повторяться автоматически.
Убедитесь, что вы используете SQL Сервер service в контексте учетной записи домена, имеющей права доступа к сети.
Или это папка, локальная для ящика SQL Server и доступная другим пользователям?
** РЕДАКТИРОВАТЬ: ** бах, @ splattne правильно, я был на автопилоте. Служба SQL Server, а не агент SQL.