30.12.2013, 18:03 | #1 |
Участник
|
Как задать пользователя, от имени которого запускается пакетное задание?
Возникла задача - поменять пользователя, от имени которого запускается пакетное задание. Как это можно сделать?
Или надо удалить задание, зайти под нужным пользователем и создать новое пакетное задание? |
|
30.12.2013, 18:10 | #2 |
Участник
|
Поменять нельзя, надо запускать от имени того пользователя.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: AnGor (1). |
30.12.2013, 19:22 | #3 |
Участник
|
В пакетном режиме запуск выполняется от имени того пользователя, код которого записан в поле таблицы Batch.CreatedBy. Соответственно, подмена пользователя - это изменение этого системного поля. Ну, для порядка, еще неплохо бы сделать аналогичную замену в поле таблицы BatchJob.CreatedBy.
Как менять CreateBy это смотрите здесь: Програмно изменить createdBy PS: Если Вы не программист, то в стандартном интерфейсе такая операция не предусмотрена. Тогда только тот вариант, который описал Ivanhoe
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 30.12.2013 в 19:26. |
|
30.12.2013, 20:58 | #4 |
Сенбернар
|
Поменять пользователя, под которым запускается..
[Вы такое понятие - "безопасность" - знаете?]
Шепотом... Если знаете - вы УЖЕ знаете ответ на Ваш вопрос.. == Не, млин.. а дальше из этого batch jod - улетит NNN +++ денег.. куда-то.. Каб примерно такого же не было б недавно - не говорил бы.. правда,. == Да, и с Новым Годом всех.. думать головой - Новый Год - не отменяет.. Strictly IMXO.. ну.. понятно ))
__________________
Best Regards, Roman Последний раз редактировалось RVS; 30.12.2013 в 21:09. |
|
31.12.2013, 11:23 | #5 |
Участник
|
подменил createtby апдейтом через sql. Заработало под указанным пользователем.
А ведь и действительно - можно под кем угодно запустить пакость. |
|
31.12.2013, 14:22 | #6 |
Участник
|
доступ к рабочему sql-серверу разработчики не должны иметь
|
|
31.12.2013, 14:55 | #7 |
Участник
|
В AX 2012 доступ к разработке, кстати, есть только у роли Системный администратор, которой доступно все
__________________
Ivanhoe as is.. |
|
01.01.2014, 16:02 | #8 |
Роман Долгополов (RDOL)
|
а чем runAs(юзер, класс, метод) не угодила? для этого, в принципе, и предназначена. штатная команда x++ - никаких извращений с прямым sql, подменой системных полей и прочим подобным
|
|
|
За это сообщение автора поблагодарили: AnGor (1). |
02.01.2014, 21:41 | #9 |
Участник
|
тогда нужно отдельный класс писать, который бы запускал другие классы в пакетниках. Идея была - побыстрому поменять кучку пакетных заданий, которые запускались от "не легального" пользователя, которого хотели прикрыть в эктивдиректори. Хотя предложенный метод очень правильный, не такой вандальный - согласен.
|
|
10.01.2014, 11:26 | #10 |
Участник
|
Цитата:
X++: global::executeSql(strFmt("update Batch set ExecutedBy = 'вася', CreatedBy = 'вася' where recId = %1", Batch.RecId)); global::executeSql(strFmt("update BatchJob set CreatedBy = 'вася' where recId = %1", Batch.BatchJobId)); где X++: static server void executeSql(str _sql) { SqlSystem sqlSystem = new SqlSystem(); Connection connection; Statement statement; SqlStatementExecutePermission permission; ; connection = new Connection(); statement = connection.createStatement(ResultSetType::Dynamic, ResultSetConcurrency::Updatable); sqlSystem = new SqlSystem(); connection.ttsbegin(); permission = new SqlStatementExecutePermission(_sql); permission.assert(); statement.executeUpdate(_sql); CodeAccessPermission::revertAssert(); connection.ttscommit(); } |
|
|
За это сообщение автора поблагодарили: raz (1), AnGor (1). |