Недавно столкнулся с задачкой — настроить резервное копирование MSSQL базы на сетевую шару по SMB. Сам SQL сервер работает под доменной учётной записью, а SMB шара доступна по локальному логину и паролю NAS.
Попытка создать локальную учётку на сервере с таким же именем и паролем провалилась, так как сервер дополнительно исполняет роль контроллера домена, все локальные учётные записи также принадлежат домену. Попытки войти по SMB оказались безуспешными.
В голову пришло только одно решение, перед началом бэкапа монтировать шару как диск, а после окончания резервного копирования демонтировать. Для начала разрешим SQL серверу монтировать диски. Выдаём права на запуск процедуры xp_cmdshell:
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell',1
GO
RECONFIGURE
GO
Перед началом бэкапа монтируем диск:
EXEC xp_cmdshell 'net use X: \\nasserver\share /user:nasuser naspassword'
Где:
- X: — монтируемый диск
- \\nasserver\share — монтируемая шара
- nasuser — пользователь (для домена указывается как domain\username, но мне как раз домен не нужен)
- naspassword — пароль
Бэкапим на X:\...
После окончания бэкапа демонтируем диск:
EXEC xp_cmdshell 'net use X: /delete'
В GUI это будет выглядеть как-то так:
Способ сработал, бэкап на NAS по SMB с паролем успешно выполняется.