|
![]() |
#1 |
Сам.AX
|
![]()
Уважаемые пользователи форума.
Ситуация: Пользователь User1 состоит в группах Group1, Group2, Group3 Для каждой из этих групп настроен RLS на таблицу Table1. Вопрос: Как посмотреть суммарный запрос, который уходит на сервер при запросе пользователем User1 данных из таблицы Table1. Причем нужно сделать это в коде, т.к. нужна информация по всем пользователям-таблицам... Ax 4.0 sp02 Последний раз редактировалось AGRESSOR; 01.07.2010 в 09:48. |
|
![]() |
#2 |
Участник
|
Если СУБД MS SQL, то на мой взгляд, удобнее всего воспользоваться профайлером (SQL Server Profiler)
|
|
![]() |
#3 |
Сам.AX
|
Профайлером в этом случае думаю удобно воспользоваться в случае с 2-3мя пользователем и 2-3мя таблицами.
А если пользователей 1000? и неизвестно сколько у них пересекающихся в каждой таблице RLS -ов... Хотя может я чего-то о профайлере не знаю =) |
|
![]() |
#4 |
Участник
|
Тогда поподробнее о задаче:
- Нужно смотреть в рабочей или тестовой базе ? - Требуется отследить запросы для определенного числа форм/отчетов и т.п. или провести глобальный мониторинг ? - Прочие особенности |
|
![]() |
#5 |
Сам.AX
|
1) на рабочей
2) глобальный мониторинг 3) база MS SQL... не знаю что еще дополнить =) |
|
![]() |
#6 |
Участник
|
Тогда действительно профайлер не пойдет.
PS. Может попробовать решить задачу как нибудь по другому ? Например для начала получить все возможные комбинации групп RLS для всех пользователей и анализировать уже их. |
|
![]() |
#7 |
Сам.AX
|
Ну дак это небольшая проблема: получить пересекающиеся в таблице RLS запросы для каждого пользователя... Вопрос в том, что делать с ними дальше, ведь нужно получить SQL-запрос, пришедший на сервер БД из ядра Аксапты...
|
|
![]() |
#8 |
----------------
|
глупый вопрос.
а какова цель данного исследования? |
|
|
За это сообщение автора поблагодарили: oip (1). |
![]() |
#9 |
Сам.AX
|
2 Wamr: Цель - предоставить начальству отчет вида Пользователь-Таблица-Суммарный запрос"
![]() |
|
![]() |
#10 |
Участник
|
Цитата:
![]() 1. Если босса удовлетворит разграничение в терминах АХ, то можно просто построить запросик по таблицам: - UserInfo - UserGroupList - SysRecordLevelSecurity - может еще что-то 2. Если нужно именно в виде предиката MS SQL, то а. Развертываем копию рабочей базы б. В Class/Info/startupPost добавляем формирование и запуск Query для нужной таблицы с range описанным выше. (не забываем исключить из "праздника" себя любимого ![]() в. Делаем job/class для запуска в цикле Аксапты под всеми (выбранными) пользователями. (можно использовать за основу Тестирование прав пользователей. DAX 4.0.) г. Настраиваем профайлер на базу и запускаем его. д. Запускаем пункт в е. Выбираем из профайлера получившиеся запросы и парсим их. PS.Вариант 1 мне нравиться гораздо больше ![]() |
|
|
За это сообщение автора поблагодарили: mazzy (2), shogel (1), AGRESSOR (1). |
![]() |
#11 |
Axapta
|
Цитата:
Цитата:
Если вы пытаетесь разобраться, как что-либо сделать (а не сообщаете об ошибке), начинайте с описания цели. И только потом описывайте конкретный шаг на пути к ней, который вы оне смогли выполнить.
Зачастую люди, которым необходима техническая помощь, имеют на уме высокоуровневую цель и привязываются к одному из возможных, по их мнению, путей ее достижения. Они просят помочь выполнить один шаг, не отдавая себе отчета в том, что выбрали неверный путь. Чтобы разобраться в этом, может потребоваться много усилий. |
|
|
За это сообщение автора поблагодарили: AGRESSOR (1). |
![]() |
#12 |
Модератор
|
Если у Вас есть ВНЯТНО спроектированная структура групп пользователей, если RLS группы отделены от групп с правами пользователей, достаточно простого как дверь отчета { Пользователь - Имя - Группа - Описание }. Если нет - наведите таки порядок или продолжайте рожать ежиков
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#13 |
Участник
|
|
|
![]() |
#14 |
Модератор
|
А можно с этого места поподробнее? Например, в каких версиях это нельзя сделать?
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#15 |
Axapta Retail User
|
_scorp_, немного не поняла, в чем проблема сделать в 3-ке также как вы привели для 4-ки пример?
у нас в 3-й (SP3) сейчас настроено так - есть общая группа "кассир" - где выданы все права на работу с кассами (не RLS). и отдельно группы Касса1 Касса2 Касса3 и т.д. - где права на конкретную кассу (ограничены RLS) все работает отлично. |
|
![]() |
#16 |
Сам.AX
|
2 Alexius:
Большое спасибо. За основу взял ваш второй вариант, так как нужен именно SQL-запрос 2 oip, Vadik: Смею предположить, что именно оптимизацией групп и хочет заняться начальство ![]() Оффтоп: Сам ненавижу работать без понимания цели, но начальство оно ж Там, а мы тут ![]() |
|
![]() |
#17 |
Участник
|
Поведение тройки, например: Проблема с RLS и SecurityKey.
Про различия 3.0 - 4.0 - 2009 обсуждалось, например, начиная с этого поста: Безопасность на уровне записей
__________________
Ivanhoe as is.. |
|