Есть ли альтернатива 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