Как скопировать файл с одного сервера на другой, используя xp_cmdshell с учетными данными

Как я могу скопировать файл с 1 сервера на другой, используя xp_cmdshell с учетными данными. У меня есть сервер приложений и сервер базы данных. Я хочу передать файл с сервера данных на сервер приложений, выполнив команду xp_cmdshell, используя сетевые учетные данные приложения сервер. Я использую SQL Server 2012, и я настроил xp_cmdshell в SQL Server.

Я получил ошибку "Access is denied" при попытке передать файл с локального компьютера в определенную папку в моей общей сети.

Помогите пожалуйста мне...


person Midhun C2    schedule 28.09.2016    source источник


Ответы (1)


Это предположение, конечно.

Из этой статьи MSDN вы можете узнать, что

Процесс Windows, порожденный xp_cmdshell, имеет те же права безопасности, что и учетная запись службы SQL Server.

это означает, что эта учетная запись службы Windows должна иметь права на общую папку, что, как мне кажется, неверно в вашем случае.

Таким образом, чтобы исправить это, вы можете указать xp_cmdshell Прокси-аккаунт, и тогда xp_cmdshell будет выполнять команды под этим указанным аккаунтом.

Пример:

EXEC sp_xp_cmdshell_proxy_account 'SHIPPING\KobeR','sdfh%dkc93vcMt0';
person Andrey Morozov    schedule 28.09.2016