Назад | Перейти на главную страницу

Есть ли альтернатива xp_cmdshell и net use для резервного копирования MSSQL в UNC от имени другого пользователя

Есть ли альтернатива xp_cmdshell и net use для резервного копирования MSSQL в UNC с другим пользователем?

Я сейчас использую

EXEC xp_cmdshell 'net use \\SERVER\SHARE  Password /USER:DOMAIN\USER /PERSISTENT:yes'

как сценарий preexec.

Но xp_cmdshell по умолчанию отключен (полагаю, из-за проблем с безопасностью).

Для BACKUP операторы SQL Server будет использовать учетную запись службы, под которой работает служба ядра базы данных, в качестве контекста безопасности для взаимодействия с операционной системой. Поэтому вам потребуется предоставить учетной записи службы SQL Server доступ к общему ресурсу. Нет другого выхода, кроме твоего xp_cmdshell взломать.

Например:

Если служба SQL Server запущена от имени пользователя домена MYDOMAIN\SQLUser тогда вам нужно будет изменить разрешения общего ресурса, чтобы разрешить доступ этому пользователю.

Если SQL Server работает как NT AUTHORITY\NETWORKSERVICE тогда, предполагая, что имя вашего компьютера SQL Server SQLHOST, вам нужно будет изменить разрешения для общего ресурса, чтобы разрешить доступ к SQLHOST$.

Используйте символическую ссылку, созданную после использования net use, чтобы ввести соответствующие учетные данные.

net use \\SERVER\SHARE  Password /USER:DOMAIN\USER /PERSISTENT:yes
mklink /d \\SERVER\SHARE C:\Mounts\SHARE

Затем в сценарии используйте C: \ Mounts \ SHARE в качестве резервного пути.

Думаю, для этого нет других способов.

обычные сценарии резервного копирования TSQL позволяют выполнять резервное копирование только на локальный диск.

Если у вас достаточно места, вы можете создать SQL-задачу, которая создает резервную копию на локальном диске, а затем переместит ее через PowerShell на путь UNC.

если у вас недостаточно места для этого: следующим образом вы можете снова активировать xp_cmdshell ...

    -- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1;
GO
-- To update the currently configured value for advanced options.
RECONFIGURE;
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1;
GO
-- To update the currently configured value for this feature.
RECONFIGURE;
GO

видеть: http://msdn.microsoft.com/en-US/en-en/library/ms190693.aspx