Есть ли альтернатива 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 по умолчанию отключено (я думаю, из-за проблем с безопасностью).

3 ответа

За 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

Другие вопросы по тегам