MS SQL настройка бэкапов на NAS
Цель - обеспечить возможность SQL Server выполнять бэкапы на сетевое хранилище (NAS), к которому по умолчанию нет доступа у виртуальной учетной записи службы.
Важные замечания перед началом
- Виртуальная учетная запись
MSSQLSERVERне имеет доступа к сетевым ресурсам. - Для работы с NAS необходимо указать реальную учетную запись Windows.
- ❗ Не рекомендуется выдавать этой учетной записи административные права — достаточно прав на доступ к нужной сетевой папке.
- Выполняйте перезапуск службы в период минимальной нагрузки (например, в обеденное время).
Настройка учетной записи службы SQL Server
- Откройте
Службы[WIN+R выполнить services.msc] - Найдите службу: SQL Server (MSSQLSERVER)
- Откройте свойства службы → вкладка "Вход в систему" (С учётной записью)

- Укажите учетную запись, которая:
- имеет доступ к NAS (сетевой папке),
- Не имеет прав администратора.
- Нажмите Применить.
Перезапуск службы
После изменения учетной записи с правами на запуск необходимо:
- Перезапустите службу
SQL Server (MSSQLSERVER). - Рекомендуется это делать:
- в обеденное время
- или в окно обслуживания
Включение xp_cmdshell
Подключитесь к серверу через SQL Server Management Studio (SSMS)

И выполните:
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell',1
GO
RECONFIGURE
GO
📌 Что это делает:
- Включает расширенные настройки сервера
- Разрешает использование
xp_cmdshell, что позволяет SQL Server выполнять команды ОС (в том числе монтировать сетевые диски)
⚠️ Безопасность
xp_cmdshell— потенциально опасная функция.- Используйте только при необходимости. Желательно ограничить доступ к её выполнению.
- отключать после настройки (если не требуется постоянно).
Монтирование сетевого диска
В SSMS выполните:

EXEC xp_cmdshell 'net use Z: \\192.168.1.83\_backups /user:nasuser naspassword'
Пояснения:
Z:— буква диска (можно выбрать любую свободную)\\192.168.1.83\_backups— путь к сетевой папкеnasuser— пользователь NAS- для домена:
domain\username naspassword— пароль
Проверка подключения
Можно проверить, что диск смонтирован:
EXEC xp_cmdshell 'net use'

Использование в бэкапах
После монтирования диск будет доступен:
- В GUI SQL Server (при выборе пути для бэкапа)
- В T-SQL:
BACKUP DATABASE [ИмяБД]
TO DISK = 'Z:\backup.bak'
Размонтирование диска (при необходимости)
Данная команда может понадобится при сетевом сбое во время загрузки бэкапов.
При выполнении задачи может появится ошибка в ms sql "данный сетевой путь недоступен" данная команда как раз решит нашу проблему с зависшим бэкапом
EXEC xp_cmdshell 'net use Z: /delete'