Запуск интерфейса из bat-файла с правами не администратора
Модераторы: m0p3e, edward_K, Модераторы
Запуск интерфейса из bat-файла с правами не администратора
Добрый день!
Есть интерфейс, который анализирует файл журнала - таблицу X$JOURNAL (цепляет до кучи еще X$USERS).
Интерфейс должен запускаться ночью автономно.
В bat-файле, запускающем интерфейс на выполнение, приходится прописывать имя пользователя и пароль.
У нас есть такой фиктивный пользователь с сильно урезанными правами (в плане видимости меню и доступа к таблицам), под которым проходят ночные выгрузки.
Так вот, если интерфейс запускается под таким пользователем (с типом "пользователь"), то он просто ничего не делает (видимо, нет прав на журнал), а если делаю этого пользователя администратором, то он начинает видеть все меню Галактики, что не есть хорошо.
Можно ли настроить права так, чтобы ограничить меню (оставить одни отчеты из ФРО), но при этом дать права на чтение словарных таблиц.
Или как-то "спрятать" имя пользователя и его пароль. Ведь в bat-файле это все явно приходится прописывать.
Есть интерфейс, который анализирует файл журнала - таблицу X$JOURNAL (цепляет до кучи еще X$USERS).
Интерфейс должен запускаться ночью автономно.
В bat-файле, запускающем интерфейс на выполнение, приходится прописывать имя пользователя и пароль.
У нас есть такой фиктивный пользователь с сильно урезанными правами (в плане видимости меню и доступа к таблицам), под которым проходят ночные выгрузки.
Так вот, если интерфейс запускается под таким пользователем (с типом "пользователь"), то он просто ничего не делает (видимо, нет прав на журнал), а если делаю этого пользователя администратором, то он начинает видеть все меню Галактики, что не есть хорошо.
Можно ли настроить права так, чтобы ограничить меню (оставить одни отчеты из ФРО), но при этом дать права на чтение словарных таблиц.
Или как-то "спрятать" имя пользователя и его пароль. Ведь в bat-файле это все явно приходится прописывать.
Кто сказал, что бесполезно биться головой об стену?!
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Запуск интерфейса из bat-файла с правами не администрато
1. Если у вас СУБД MSSQL то можно включить Windows авторизацию.
2. Проверьте зверя в сапорте - SQL . может ли он там видеть эти таблицы. Еще вопрос и какую именно. На старых версих вроде была тробла с X$users
может можно без нее обойтись. Вообще logstrtofile вам в помощь - заодно будете видеть а чего он там вообще делал.
3. Видимость меню по админам вот не помню можно ли зарезать.
4. батник можно поместить в закрытый ресурс.
5. Попробуйте из галактики запустить тот ж фейс.
2. Проверьте зверя в сапорте - SQL . может ли он там видеть эти таблицы. Еще вопрос и какую именно. На старых версих вроде была тробла с X$users
может можно без нее обойтись. Вообще logstrtofile вам в помощь - заодно будете видеть а чего он там вообще делал.
3. Видимость меню по админам вот не помню можно ли зарезать.
4. батник можно поместить в закрытый ресурс.
5. Попробуйте из галактики запустить тот ж фейс.
Re: Запуск интерфейса из bat-файла с правами не администрато
У нас первасив.
Я именно в лог и пишу информацию.
Если запускаю батник, где не прописаны логин/пароль, то Гал-ка просит ввести мои данные (я, понятное дело, админ), и все корректно отрабатывает, а стоит поменять пользователя, как в лог ничего не пишется. Даже мессаджи вставляла, они отрабатывают, т.е., фейс запускается, но в лог не пишется.
В Саппорте думала добавить пользователю права на журнал, но, увы, не предлагает (
Там таблицы начинаются с №900.
Не очень понятен Ваш совет: "батник можно поместить в закрытый ресурс." Это как?
Кстати, мне выгрузку нужно повторить на 20 разных базах.
Все они пишут инфу в один и тот же лог-файл.
Я именно в лог и пишу информацию.
Если запускаю батник, где не прописаны логин/пароль, то Гал-ка просит ввести мои данные (я, понятное дело, админ), и все корректно отрабатывает, а стоит поменять пользователя, как в лог ничего не пишется. Даже мессаджи вставляла, они отрабатывают, т.е., фейс запускается, но в лог не пишется.
В Саппорте думала добавить пользователю права на журнал, но, увы, не предлагает (
Там таблицы начинаются с №900.
Не очень понятен Ваш совет: "батник можно поместить в закрытый ресурс." Это как?
Кстати, мне выгрузку нужно повторить на 20 разных базах.
Все они пишут инфу в один и тот же лог-файл.
Кто сказал, что бесполезно биться головой об стену?!
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Запуск интерфейса из bat-файла с правами не администрато
Ну вы же можете создать папку и дать на нее права тока одному зверю от имени которого будете галку стартовать.
Раз 20 баз, то лучше чтобы это был один батник. Лог тоже вопрос как выводите . попробуйте во второй лог писать диагностику - с первой строки cmInit. Все таки вопрос начиная с какой строки он не сработает. Мож имо файла не так указали или еще что.
Раз 20 баз, то лучше чтобы это был один батник. Лог тоже вопрос как выводите . попробуйте во второй лог писать диагностику - с первой строки cmInit. Все таки вопрос начиная с какой строки он не сработает. Мож имо файла не так указали или еще что.
Re: Запуск интерфейса из bat-файла с правами не администрато
"Ну вы же можете создать папку и дать на нее права тока одному зверю от имени которого будете галку стартовать"
- можно конечно, только у нас всяких ночных выгрузок куча с грудой. Сильно заморочно все переделывать, разруливать права на папки.
Но, видимо единственный вариант - завести во все базы новых пользователей с правами админа...
- можно конечно, только у нас всяких ночных выгрузок куча с грудой. Сильно заморочно все переделывать, разруливать права на папки.
Но, видимо единственный вариант - завести во все базы новых пользователей с правами админа...
Кто сказал, что бесполезно биться головой об стену?!
Re: Запуск интерфейса из bat-файла с правами не администрато
Можно воспользоваться каким-нибудь обфускатором.
Типа: http://www.battoexeconverter.com/
От визуального просмотра батника поможет.
Типа: http://www.battoexeconverter.com/
От визуального просмотра батника поможет.
Re: Запуск интерфейса из bat-файла с правами не администрато
О богиm0p3e писал(а):Можно воспользоваться каким-нибудь обфускатором.
Типа: http://www.battoexeconverter.com/
От визуального просмотра батника поможет.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Запуск интерфейса из bat-файла с правами не администрато
Ну да - наверняка в фейсе косяк. Скока фейсов делал для автообмена, но без x$users и ничего - все пахало.
Re: Запуск интерфейса из bat-файла с правами не администрато
Задачу скрыть пароль для "дурака" решает.LaaLaa писал(а):О богиm0p3e писал(а):Можно воспользоваться каким-нибудь обфускатором.
Типа: http://www.battoexeconverter.com/
От визуального просмотра батника поможет.
Re: Запуск интерфейса из bat-файла с правами не администрато
если bat-файл запускает:s2176 писал(а): ..
В bat-файле, запускающем интерфейс на выполнение
..
Можно ли ... ограничить меню (оставить одни отчеты из ФРО), но при этом дать права на чтение словарных таблиц.
start /wait ...\exe\atlexec.exe /galaxy.nowrun=IF_NAME1 /Login.UserName=Usr1_NoMenu /P=PASSWORD
для запуска своего конкретного фейса IF_NAME1:
1) меню не нужно. В правах Usr1_NoMenu меню обрезать полностью.
2) в правах на таблицы выбрать ВСЕ таблицы с полными правами.
3) у пользователя Usr1_NoMenu поставить права на Рабочие станции: имя сервера и свой комп для отладки.
4) на папку где Bat-ник про NTFS уже сказали
Итог:
Зайти в Галактику таким пользователем с других железок не получится, а если получиться, то без меню что там делать?
А вот под SQL-Server через ODBC дыра!!! закрывать или NTLM или шифрованием паролей или bat-ник прятать в Exe.
Re: Запуск интерфейса из bat-файла с правами не администрато
Интерфейс должен запускаться ночью автономно или по запросу на машине любого из админов.
Ночью запускается батник:
Собственно сам интерфейс:
Делаю пользователя в суппорте админом (при этом больше ничего в правах не меняю) - все работает, делаю простым пользователем - лог не пишется.
Ночью запускается батник:
Код: Выделить всё
start \\dbs14\Galdata\gal810\exe\galnet.EXE /galaxy.nowrun=USERACTSTATISTIC /DATABASE.DATABASENAME=%GalData% /c:fcom_1.cfg /p: /u:
sleep 5m
start \\dbs14\Galdata\gal810\exe\galnet.EXE /galaxy.nowrun=USERACTSTATISTIC /DATABASE.DATABASENAME=%GalData% /c:fcom_2.cfg /p: /u:
sleep 4m
start \\dbs14\Galdata\gal810\exe\galnet.EXE /galaxy.nowrun=USERACTSTATISTIC /DATABASE.DATABASENAME=%GalData% /c:fcom_3.cfg /p: /u:
sleep 4m
....
start \\dbs14\Galdata\gal810\exe\galnet.EXE /galaxy.nowrun=USERACTSTATISTIC /DATABASE.DATABASENAME=%GalData% /c:fcom_20.cfg /p: /u:
sleep 4m
Код: Выделить всё
interface UserActStatistic 'Статистика действий пользователя' escclose;
file f_cfg;
var _isAUTO: word;
create view
var _date: date
_nrec, _nrecTD: comp
select jour.tablecode, jour.tablenrec, jour.operation, tuser.XU$FULLNAME, tuneval.strval
from x$journal jour, x$users tuser, tstat, tuneval
where ((1==jour.status and _date==jour.lastdate and usercode==tuser.atl_nrec and
1==tuneval.obj and tuser.atl_nrec==tuneval.cuser and _nrecTD==tuneval.ctune
))
;
parameters _isAuto;
HandleEvent
cmInit:
{ var _nt, i, ii, _jo, _cnt: word;
var _pr: boolean;
var _kompan, _fioUser, _ss, str_path: string;
var _codeTable: array [1..10] of word;
var _NameTable: array [1..10] of string;
...
_date:=sub_day(cur_date(),1)
if _isAUTO=1 then RunDialog('C_Common::GetFormNa', _date);
_kompan:=sGetTune('MYORG');
if getfirst tunedef where (('USER.DESGR'==code)) = tsOk
then _nrecTD:=tunedef.nrec;
_codeTable[1]:=15028; _NameTable[1]:='отпуска'; //otpusk
_codeTable[2]:=15027; _NameTable[2]:='больничные'; //blisnet
_codeTable[3]:=25000; _NameTable[3]:='рабочая корзина'; //zarsignal
_codeTable[4]:=15030; _NameTable[4]:='ведомости межпериода'; //sys_mbf
_codeTable[5]:=15016; _NameTable[5]:='предварительный просмотр'; //uchrabvr
_codeTable[6]:=9044; _NameTable[6]:='платежные ведомости'; //platved
_codeTable[7]:=9015; _NameTable[7]:='бух.справки'; //plpor
_codeTable[8]:=15014; _NameTable[8]:='детские пособия'; //child
!message(datetostr(_date,'DD/MM/YYYY'));
if _isAUTO=1 startNewVisual(vtNumericVisual,vfTimer+vfBreak+vfconfirm,'Просматриваю журнал событий ...',1);
_loop jour where (jour.operation<>8) //кроме удаления
{ _ss:=tuneval.strval;
if _ss='KADR' continue;
_nt:=jour.tablecode;
_pr:=false; ii:=0;
for(i:=1;i<9;i++)
{ if _nt=_codeTable[i] { _pr:=true; ii:=i; i:=10; }
}
if not(_pr) continue; //таблица не из списка
_fioUser:=tuser.XU$FULLNAME; _nrec:=jour.tablenrec;
_pr:=true;
if _nt=15016 //предварительный просмотр
{ if getfirst uchrabvr where ((_nrec==uchrabvr.nrec)) = tsOk
{ if uchrabvr.summa34=0 _pr:=false; //автоматическая разноска, не считаем
}
}
if _pr
{ if getfirst tstat where ((_ss==group_Name and _fioUser==user_Name and ii==table_Name and _nrec==Table_nrec)) <> tsOk
{ insert tstat
set group_Name:=_ss, user_Name:=_fioUser, table_Name:=ii, table_Nrec:=_nrec;
}
}
if _isAUTO=1 and NextVisual()=false { stopVisual('',0); exit; }
}
if _isAUTO=1 and VisualizationActive() stopVisual('',0);
i:=1;
_loop tstat
{ i:=i+1;
_ss:=_kompan+';'+tstat.group_Name+';'+tstat.user_Name+';'+_NameTable[tstat.table_Name];
ii:=0;
groupBy G1: tstat.group_Name, tstat.user_Name, tstat.table_Name
{ ii:=ii+1;
}
_ss:=_ss+';'+string(ii);
logstrtofile(str_path+'statZPL_'+datetostr(_date,'YYYYMMDD')+'.log',_ss);
}
if _isAUTO>0 runinterface(StatLogtoExcel,_isAUTO,_date);
}
end;
end.
Кто сказал, что бесполезно биться головой об стену?!