Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Авторизация при выполнении xp_cmdshell  [new]
Lanselot
Member

Откуда:
Сообщений: 76
Добрый день!
При вызове в job
EXEC master..xp_cmdshell 'echo "OK" > \\fileserver\Test\Test.txt' 

нет доступа к папке.
Job при этом выполняется от имени доменного пользователя имеющего права на эту папку.
Служба MSSQLSERVER запущена от NETWORK SERVICE.
Понимаю, что MSSQLSERVER пытается запустить xp_cmdshell от имени NETWORK SERVICE, у которого нет прав.

Посоветуйте, как сказать MSSQLSERVERу выполнять xp_cmdshell в job от имени пользователя, а не от NETWORK SERVICE?

К сообщению приложен файл. Размер - 6Kb
19 ноя 14, 16:52    [16873267]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36989
sp_xp_cmdshell_proxy_account
19 ноя 14, 17:00    [16873312]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Lanselot
Member

Откуда:
Сообщений: 76
Гавриленко Сергей Алексеевич,
Выполнял процедуру
sp_xp_cmdshell_proxy_account NULL

потом
sp_xp_cmdshell_proxy_account 'моя доменная учетная запись','пароль'

EXEC master..xp_cmdshell

Access is denied.
20 ноя 14, 08:02    [16875916]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lanselot
Access is denied.

EXEC master..xp_cmdshell 'whoami'
20 ноя 14, 09:06    [16876074]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Lanselot
Member

Откуда:
Сообщений: 76
Glory,
nt authority\network service
20 ноя 14, 09:16    [16876114]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lanselot
Glory,
nt authority\network service

- Создаете proxy для Operating system (CmdExec)
- В джобе выбираете тип шага Operating system (CmdExec)
- назначаете этому шагу выполнение под созданным proxy
20 ноя 14, 09:21    [16876131]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Lanselot
Member

Откуда:
Сообщений: 76
Glory,
Unable to start execution of step 1 (reason: JobOwner SERVER\username doesn't have permissions to use proxy 1 for subsystem CmdExec). The step failed.


К сообщению приложен файл. Размер - 34Kb
20 ноя 14, 09:41    [16876207]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lanselot
Glory,
Unable to start execution of step 1 (reason: JobOwner SERVER\username doesn't have permissions to use proxy 1 for subsystem CmdExec). The step failed.


Картинка с другого сайта.

Причем тут xp_cmdshell_proxy_account ?
20 ноя 14, 09:44    [16876222]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Lanselot
Member

Откуда:
Сообщений: 76
В свойствах шага, в списке "Выполнять как" есть только "Учетная запись службы SQL Server, агент", поэтому я добавил с помощью xp_cmdshell_proxy_account учетную запись посредника (мою доменную учетку). И она появилась в списке "Выполнять как", где я ее и выбираю.
А как еще можно напрямую выбрать мою доменную учетку в свойствах шага, в списке "Выполнять как"?
20 ноя 14, 09:57    [16876331]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lanselot
В свойствах шага, в списке "Выполнять как" есть только "Учетная запись службы SQL Server, агент",

Еще раз, по шагам
- Создаете credential
- Создаете proxy для Operating system (CmdExec) с этим credential
- В джобе выбираете тип шага Operating system (CmdExec)
- Назначаете этому шагу выполнение под созданным proxy
20 ноя 14, 10:06    [16876381]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Lanselot
Member

Откуда:
Сообщений: 76
Glory,
Извините, сначала понял неверно.
Все сделал так:
Glory
- Создаете proxy для Operating system (CmdExec)
- В джобе выбираете тип шага Operating system (CmdExec)
- назначаете этому шагу выполнение под созданным proxy


При запуске job теперь выдает другое сообщение:
Executed as user: SERVER\username. The process could not be created for step 1 of job 0xEA81FDCC68035D4F96C94D235B2E88DF (reason: 2). The step failed.
20 ноя 14, 10:11    [16876411]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Lanselot
Member

Откуда:
Сообщений: 76
Glory, в очередной раз спасибо.
Последнее сообщение было из-за того, что я в команде шага с типом "Operating system (CmdExec)" пытался выполнить
EXEC master..xp_cmdshell 'echo "OK" > \\fileserver\Test\Test.txt' 


оставил только команду
echo "OK" > \\fileserver\Test\Test.txt

и стало мне счастье.
Спасибо, за помощь!
20 ноя 14, 10:20    [16876479]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Авторизация при выполнении xp_cmdshell  [new]
Ondayl
Member

Откуда:
Сообщений: 203
Доброго времени суток!
Прощу прощения за некропост, но ошибку Unable to start execution of step 1 (reason: JobOwner sa doesn't have permissions to use proxy 2 for subsystem CmdExec). The step failed.
я у себя побороть так и не смог. У меня владелец джоба sa, по идее у него права уже должны быть? Тогда почему не работает? Заранее спасибо.
12 ноя 18, 13:11    [21731701]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7780
Ondayl,

при sa выполнение происходит от учетной записи, от которой стартует SQL Agent.
12 ноя 18, 14:12    [21731790]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Ondayl
Member

Откуда:
Сообщений: 203
Владислав Колосов, ок. И как этой учетной записи дать права на выполнение CMDEXEC?
12 ноя 18, 14:34    [21731826]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7780
Ondayl,

у Вас по-моему другая ситуация, надо открыть список прокси и добавить участника sa к тому прокси, который используется в job.
12 ноя 18, 15:09    [21731877]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Ondayl
Member

Откуда:
Сообщений: 203
Владислав Колосов
Ondayl,

у Вас по-моему другая ситуация, надо открыть список прокси и добавить участника sa к тому прокси, который используется в job.

Т.е в списке Principal в этой прокси, я должен видеть sa? Если да, то не получается, при выполнении он пишет что:
'sa' is a member of sysadmin server role and cannot be granted to or revoked from the proxy. Members of sysadmin server role are allowed to use any proxy.
12 ноя 18, 15:29    [21731909]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7780
Ondayl,

тогда или смените владельца или уберите прокси. Вообще не припомню, чтобы у меня были такие проблемы.
12 ноя 18, 15:36    [21731924]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Ondayl
Member

Откуда:
Сообщений: 203
Владислав Колосов, на любом владельце такая ошибка. В тексте ошибки только имя пользователя меняется.
12 ноя 18, 15:39    [21731926]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
invm
Member

Откуда: Москва
Сообщений: 9351
Ondayl,

Что в msdb.dbo.sysproxies для proxy_id = 2?
12 ноя 18, 16:09    [21731976]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Ondayl
Member

Откуда:
Сообщений: 203
invm,

2 UtilityAgentProxy_6A101302-ABCD-59D9-806B-C0E4B0A16C06 65537 0 NULL 0x0105000000000005150000005B723B93E455F0EB4D1330B2B88B6A01 2018-11-12 11:02:31.380
12 ноя 18, 17:06    [21732075]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
invm
Member

Откуда: Москва
Сообщений: 9351
Ondayl,

Для вашего прокси enabled = 0
Поможет sp_update_proxy
12 ноя 18, 17:29    [21732100]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация при выполнении xp_cmdshell  [new]
Ondayl
Member

Откуда:
Сообщений: 203
invm, спасибо, помогло. А почему этого параметра в графике нет?
13 ноя 18, 09:14    [21732570]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить