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