powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / xp_cmdshell права на выполнение
7 сообщений из 7, страница 1 из 1
xp_cmdshell права на выполнение
    #39588086
Arl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Arl
Гость
Добрый день всем!

Есть небольшая самописная консольная программка (конвертер), которую надо запустить из sql-запроса.
Программка лежит в папке на диске E, на том же сервере, где крутится экземпляр sql.

При запуске вручную из cmd (с компьютера пользователя) программка запускается и отрабатывает нормально.
При запуске из скрипта - не работает.
Код: sql
1.
2.
3.
4.
DECLARE @i INT
EXEC @i = master.dbo.xp_cmdshell 'e:\1\1.exe e:\1\1.csv'
SELECT @i
-- результат: @i = 255


Я так подозреваю, что это связано с правами, под которыми запускается xp_cmdshell.
Код: sql
1.
2.
EXEC master.dbo.xp_cmdshell 'whoami'
-- результат: nt authority\network service


При этом я могу зайти в папку и прочитать содержимое, ошибок не возникает:
Код: sql
1.
EXEC @i = master.dbo.xp_cmdshell 'dir e:\1\'


Если это таки проблемы с правами, то как дать xp_cmdshell права на выполнение программки?
...
Рейтинг: 0 / 0
xp_cmdshell права на выполнение
    #39588099
Кусочек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовали?

sp_xp_cmdshell_proxy_account
...
Рейтинг: 0 / 0
xp_cmdshell права на выполнение
    #39588108
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArlЕсли это таки проблемы с правами, то как дать xp_cmdshell права на выполнение программки?Или прокси-аккаунт, или дать права nt authority\network service (хотя странно, почему у него нет прав на локальную папку), либо поменять аккаунт для сиквела на тот, у которого будут права.
...
Рейтинг: 0 / 0
xp_cmdshell права на выполнение
    #39588187
Arl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Arl
Гость
Спасибо за ответы.
Добавил sp_xp_cmdshell_proxy_account.
Результат тот же.
Код: sql
1.
2.
EXEC master.dbo.xp_cmdshell 'whoami'
-- результат: nt authority\network service


xp_cmdshell теперь по умолчанию запускается от имени пользователя,
указанного в sp_xp_cmdshell_proxy_account или это надо указывать при запуске?
...
Рейтинг: 0 / 0
xp_cmdshell права на выполнение
    #39588193
Кусочек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ArlСпасибо за ответы.
Добавил sp_xp_cmdshell_proxy_account.
Результат тот же.
Код: sql
1.
2.
EXEC master.dbo.xp_cmdshell 'whoami'
-- результат: nt authority\network service


xp_cmdshell теперь по умолчанию запускается от имени пользователя,
указанного в sp_xp_cmdshell_proxy_account или это надо указывать при запуске?

Код: sql
1.
2.
Учетная запись-посредник для процедуры xp_cmdshell
Когда ее вызывает пользователь, не являющийся членом предопределенной роли сервера sysadmin, процедура xp_cmdshell подключается к Windows с помощью имени учетной записи и пароля, которые хранятся в учетных данных с именем ##xp_cmdshell_proxy_account##. Если эти посреднические учетные данные не существуют, то процедура xp_cmdshell завершит выполнение с ошибкой.
...
Рейтинг: 0 / 0
xp_cmdshell права на выполнение
    #39588286
гогол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArlСпасибо за ответы.
Добавил sp_xp_cmdshell_proxy_account.
Результат тот же.
Код: sql
1.
2.
EXEC master.dbo.xp_cmdshell 'whoami'
-- результат: nt authority\network service


xp_cmdshell теперь по умолчанию запускается от имени пользователя,
указанного в sp_xp_cmdshell_proxy_account или это надо указывать при запуске?


А пароль при создании прокси верно указали?
...
Рейтинг: 0 / 0
xp_cmdshell права на выполнение
    #39588983
Arl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Arl
Гость
Спасибо всем за ответы, разобрались.
На SQLserver добавили пользователя с "проверкой подлинности windows", этого же пользователя добавили в Proxy Account,
после этого все заработало.
Код: sql
1.
2.
EXECUTE AS LOGIN = 'user'
EXEC @i = master.dbo.xp_cmdshell 'e:\1\1.exe e:\1\1.csv'


ПС. Учетную запись-посредника добавлял с помощью команды
Код: sql
1.
CREATE CREDENTIAL ##xp_cmdshell_proxy_account## WITH IDENTITY = 'user', SECRET = 'pass'
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / xp_cmdshell права на выполнение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]