|
![]() |
#1 |
Участник
|
Тогда действительно профайлер не пойдет.
PS. Может попробовать решить задачу как нибудь по другому ? Например для начала получить все возможные комбинации групп RLS для всех пользователей и анализировать уже их. |
|
![]() |
#2 |
Сам.AX
|
Ну дак это небольшая проблема: получить пересекающиеся в таблице RLS запросы для каждого пользователя... Вопрос в том, что делать с ними дальше, ведь нужно получить SQL-запрос, пришедший на сервер БД из ядра Аксапты...
|
|
![]() |
#3 |
Участник
|
Безумная идея:
В Class/SysQueryRun/new для нужных таблиц добавить range типа X++: strfmt('((DataAreaId == DataAreaId) || (DataAreaId == "%1"))', curuserid()) X++: strfmt('((DataAreaId == DataAreaId) || (TableField == "%1"))', curuserid()) X++: strfmt('((DataAreaId == DataAreaId) || (RecId == %1))', xUserInfo::find().RecId) В профайлере добавить фильтр на текст %DATAAREAID=DATAAREAID% (сомневаюсь, что найдутся еще такие запросы ![]() PS. По SysQueryRun например тут Не работает RLS по связанной таблице. Так и должно быть? PS2. Реализация и последствия на Вашей совести ![]() |
|
|
За это сообщение автора поблагодарили: AGRESSOR (1). |