powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
24 сообщений из 24, страница 1 из 1
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39974758
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер.

Не могу добавить прокси пользователя.


Код: sql
1.
EXEC sp_xp_cmdshell_proxy_account 'mydomain\user01', 'qwerty'




сообщение: 15137, уровень: 16, состояние: 1, процедура: sp_xp_cmdshell_proxy_account, строка: 1 [строка начала пакета: 76]
An error occurred during the execution of sp_xp_cmdshell_proxy_account. Possible reasons: the provided account was invalid or the '##xp_cmdshell_proxy_account##' credential could not be created. .



При этом вот эти комманды выполнились нормально:
Код: sql
1.
2.
3.
4.
5.
6.
7.
USE master;

GRANT EXECUTE ON xp_cmdshell TO [mydomain\user01']

create credential ##xp_cmdshell_proxy_account## with identity = 'mydomain\user01'', secret = 'qwerty' 

GRANT CONTROL SERVER TO [mydomain\user01]



Уже замучался

Подскажите пожалуйста как прокси пользователя добавить? (нужен для выполнения xp_cmdshell)
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39974762
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А руками почему не добавить?
Зачем со скриптами мучаться?
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39974875
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms,

у Вас кавычки криво-косо написаны и нет квадратных скобок для имени.
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975214
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL2008
А руками почему не добавить?
Зачем со скриптами мучаться?


Руками - это как?
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975217
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов
ssms,

у Вас кавычки криво-косо написаны и нет квадратных скобок для имени.


Это сюда кавычки как-то косо скопиорвались.

Комманды из второго блока выполились успешно.
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975221
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов
ssms,

нет квадратных скобок для имени.




Код: sql
1.
EXEC sp_xp_cmdshell_proxy_account '[mydomain\user01]', 'qwerty'



Такая же ошибка.


сообщение: 15137, уровень: 16, состояние: 1, процедура: sp_xp_cmdshell_proxy_account, строка: 1 [строка начала пакета: 76]
An error occurred during the execution of sp_xp_cmdshell_proxy_account. Possible reasons: the provided account was invalid or the '##xp_cmdshell_proxy_account##' credential could not be created. .
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975279
old_joy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы пароль администратора ОС не меняли после запуска БД ?
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975337
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
old_joy
А вы пароль администратора ОС не меняли после запуска БД ?


Это неизвестно.

А как это может быть связано с ошибкой?
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975356
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть проблемы вообще вот какая:

есть тpиггeр, который в теле своем выполняет cmd комманду пр идобавлении новой строки в таблицу.

Если новую сторку вручгую в манаджмент студии через insert добалять - отрабатывает нормально.

Кодга строку пытается встаивить приложение - не отрабатывает и приложение зависает.
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975372
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
Кодга строку пытается встаивить приложение - не отрабатывает и приложение зависает.

Я правильно понимаю, что вы в скрипте добавления строки пытаетесь создать прокси-пользователя?
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975385
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms,

тут есть две особенности создания учетных данных посредника

если вы используете инструкцию create credential, то тут нужно синтаксически правильно ее написать:
Код: sql
1.
CREATE CREDENTIAL [##xp_cmdshell_proxy_account##] WITH IDENTITY = N'domain\username', SECRET = N'password';



Если вы используете процедуру sp_xp_cmdshell_proxy_account то тут другая особенность: это процедура является расширенной, внутри нее происходит олицетворение контекста переданного пользователя и вызов API входа пользователя в систему через процесс advapi

Проблема заключается в том что вызов происходит с клиентского приложения, а что бы управлять политикой безопасности удаленной машины необходимо вызвать функцию WinAPI LsaOpenPolicy для работы которой нужен обход защиты UAC, то есть Вам нужно запускать ssms от имени администратора
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975389
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff
ssms,

тут есть две особенности создания учетных данных посредника

если вы используете инструкцию create credential, то тут нужно синтаксически правильно ее написать:
Код: sql
1.
CREATE CREDENTIAL [##xp_cmdshell_proxy_account##] WITH IDENTITY = N'domain\username', SECRET = N'password';



Если вы используете процедуру sp_xp_cmdshell_proxy_account то тут другая особенность: это процедура является расширенной, внутри нее происходит олицетворение контекста переданного пользователя и вызов API входа пользователя в систему через процесс advapi

Проблема заключается в том что вызов происходит с клиентского приложения, а что бы управлять политикой безопасности удаленной машины необходимо вызвать функцию WinAPI LsaOpenPolicy для работы которой нужен обход защиты UAC, то есть Вам нужно запускать ssms от имени администратора




Скажите, а "от Администратора" ssms надо именно на сервере запускать или достаточно будет со своей машины от администратора запустить?
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975395
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

оформил CREATE CREDENTIAL как вы сказали.

запустил ssms от администратора на своей машине.



Ошибка та же.
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975397
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите, а "от Администратора" ssms надо именно на сервере запускать или достаточно будет со своей машины от администратора запустить?[/quot]
можно со своей.

Суть проблемы вообще вот какая:

есть тpиггeр, который в теле своем выполняет cmd комманду пр идобавлении новой строки в таблицу.

Если новую сторку вручгую в манаджмент студии через insert добалять - отрабатывает нормально.

Кодга строку пытается встаивить приложение - не отрабатывает и приложение зависает.


то что вы мутите - лютейшая жесть.
xp_cmdshell выполняется синхронно, вы переносите контроль выполнения вашего триггера по сути в out-of-process сервера.
если что то пойдет не так и у вас програмуля запущенная через xp_cmdshell зависнет к примеру, вы завесите сервер.
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975417
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
felix_ff,

оформил CREATE CREDENTIAL как вы сказали.

запустил ssms от администратора на своей машине.



Ошибка та же.


покажите выхлоп:
Код: sql
1.
2.
3.
if exists (select 1 from sys.credentials where [name] = '##xp_cmdshell_proxy_account##') select 'exists';

select is_srvrolemember('sysadmin'), HAS_PERMS_BY_NAME(NULL, NULL, 'CONTROL SERVER'), HAS_PERMS_BY_NAME(NULL, NULL, 'ALTER ANY CREDENTIAL'), HAS_PERMS_BY_NAME(NULL, NULL, 'VIEW ANY DEFINITION')
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975419
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff
ssms
felix_ff,

оформил CREATE CREDENTIAL как вы сказали.

запустил ssms от администратора на своей машине.



Ошибка та же.


покажите выхлоп:
Код: sql
1.
2.
3.
if exists (select 1 from sys.credentials where [name] = '##xp_cmdshell_proxy_account##') select 'exists';

select is_srvrolemember('sysadmin'), HAS_PERMS_BY_NAME(NULL, NULL, 'CONTROL SERVER'), HAS_PERMS_BY_NAME(NULL, NULL, 'ALTER ANY CREDENTIAL'), HAS_PERMS_BY_NAME(NULL, NULL, 'VIEW ANY DEFINITION')





exist и четыре 1
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975420
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff
Скажите, а "от Администратора" ssms надо именно на сервере запускать или достаточно будет со своей машины от администратора запустить?

можно со своей.

Суть проблемы вообще вот какая:

есть тpиггeр, который в теле своем выполняет cmd комманду пр идобавлении новой строки в таблицу.

Если новую сторку вручгую в манаджмент студии через insert добалять - отрабатывает нормально.

Кодга строку пытается встаивить приложение - не отрабатывает и приложение зависает.


то что вы мутите - лютейшая жесть.
xp_cmdshell выполняется синхронно, вы переносите контроль выполнения вашего триггера по сути в out-of-process сервера.
если что то пойдет не так и у вас програмуля запущенная через xp_cmdshell зависнет к примеру, вы завесите сервер.[/quot]

С этим полностью согласен.

Однако, надо сделать именно так.


+ разобраться с проблемой.
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975421
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

из-под администратора на самом сервере ssms выполнила скрипт

Код: sql
1.
EXEC sp_xp_cmdshell_proxy_account 'mydomain\user01', 'qwerty'




успешно.



Вы были абсолютно правы!

Большое спасибо!



... но триггер все равно не отрабатывает.

При этом ошибки профайлером не отлавливаются (добавил весь раздел еррорс и варнингс).

Думаю что может еще быть...
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975429
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
felix_ff,


... но триггер все равно не отрабатывает.

При этом ошибки профайлером не отлавливаются (добавил весь раздел еррорс и варнингс).

Думаю что может еще быть...


скорее всего у вас у пользователя от которого работает триггер нет прав на сам запуск xp_cmdshell
вам нужно будет дать право exec в master на саму процедуру.
лучше завернуть в процедуру оболочку которую подписать сертификатом иначе придется запариться маршалингом прав из целевой БД в master (или отмапливать каждый логин целевой БД дополнительно в master)

заверните запуск в лок try-catch

вида:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create or alter trigger t on table
as
begin try
--  some logic
  exec xp_cmdshell @command;
end try
begin catch
   insert into [dbo].[tbl_errors] values (ERROR_NUMBER(), ERROR_MESSAGE());
end catch



если появятся сообщение об ошибках в таблице вы их увидите.
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975450
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff
ssms
felix_ff,


... но триггер все равно не отрабатывает.

При этом ошибки профайлером не отлавливаются (добавил весь раздел еррорс и варнингс).

Думаю что может еще быть...


скорее всего у вас у пользователя от которого работает триггер нет прав на сам запуск xp_cmdshell
вам нужно будет дать право exec в master на саму процедуру.
лучше завернуть в процедуру оболочку которую подписать сертификатом иначе придется запариться маршалингом прав из целевой БД в master (или отмапливать каждый логин целевой БД дополнительно в master)

заверните запуск в лок try-catch

вида:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create or alter trigger t on table
as
begin try
--  some logic
  exec xp_cmdshell @command;
end try
begin catch
   insert into [dbo].[tbl_errors] values (ERROR_NUMBER(), ERROR_MESSAGE());
end catch



если появятся сообщение об ошибках в таблице вы их увидите.



Да я уже и GRANT EXECUTE on xp_cmdshell to public делал.

try catch использовал с записью в таблицу, как вы примерно написали - ничего не отлавливается.
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975460
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms,

ну ок если ошибок запуска самой процедуры нет, то тогда проблема в команде которую выполняете через оболочку.
когда сервер выполняет xp_cmdshell он неявно создает процесс cmd.exe из под своего контекста (или контекста прокси-пользователя) можете натравить на него Process Monitor что бы увидите с какими параметрами запускается ваша команда:

там будет что то вида:
"C:\WINDOWS\system32\cmd.exe" /c {команда}

вручную такую штуку выполните и посмотрите не отвалится ли сам cmd.exe
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975525
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

сейчас комманда выполнеяется из xp_cmd_shell а втавка строки, вызвавшей триггер не отрабатывает. (строка не вставляется).


Думаю, мож надо в епременную как-то считать результат cmdshell ?
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975566
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms,

у вас триггер то какого типа? не instead of я надеюсь?
...
Рейтинг: 0 / 0
не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
    #39975605
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

Благодарю за помощь!

Все получилось!

Надо было еще NO_OUTPUT добавить
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / не выполняется sp_xp_cmdshell_proxy_account Error code: 5(Access is denied.)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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