|
01.07.2010, 08:19 | #1 |
Сам.AX
|
Суммарный RLS запрос в виде SQL
Уважаемые пользователи форума.
Ситуация: Пользователь User1 состоит в группах Group1, Group2, Group3 Для каждой из этих групп настроен RLS на таблицу Table1. Вопрос: Как посмотреть суммарный запрос, который уходит на сервер при запросе пользователем User1 данных из таблицы Table1. Причем нужно сделать это в коде, т.к. нужна информация по всем пользователям-таблицам... Ax 4.0 sp02 Последний раз редактировалось AGRESSOR; 01.07.2010 в 09:48. |
|
01.07.2010, 09:31 | #2 |
Участник
|
Если СУБД MS SQL, то на мой взгляд, удобнее всего воспользоваться профайлером (SQL Server Profiler)
|
|
01.07.2010, 09:53 | #3 |
Сам.AX
|
Профайлером в этом случае думаю удобно воспользоваться в случае с 2-3мя пользователем и 2-3мя таблицами.
А если пользователей 1000? и неизвестно сколько у них пересекающихся в каждой таблице RLS -ов... Хотя может я чего-то о профайлере не знаю =) |
|
01.07.2010, 10:17 | #4 |
Участник
|
Тогда поподробнее о задаче:
- Нужно смотреть в рабочей или тестовой базе ? - Требуется отследить запросы для определенного числа форм/отчетов и т.п. или провести глобальный мониторинг ? - Прочие особенности |
|
01.07.2010, 10:40 | #5 |
Сам.AX
|
1) на рабочей
2) глобальный мониторинг 3) база MS SQL... не знаю что еще дополнить =) |
|
01.07.2010, 10:57 | #6 |
Участник
|
Тогда действительно профайлер не пойдет.
PS. Может попробовать решить задачу как нибудь по другому ? Например для начала получить все возможные комбинации групп RLS для всех пользователей и анализировать уже их. |
|
01.07.2010, 11:22 | #7 |
Сам.AX
|
Ну дак это небольшая проблема: получить пересекающиеся в таблице RLS запросы для каждого пользователя... Вопрос в том, что делать с ними дальше, ведь нужно получить SQL-запрос, пришедший на сервер БД из ядра Аксапты...
|
|
02.07.2010, 00:15 | #8 |
----------------
|
глупый вопрос.
а какова цель данного исследования? |
|
|
За это сообщение автора поблагодарили: oip (1). |
02.07.2010, 08:43 | #9 |
Сам.AX
|
2 Wamr: Цель - предоставить начальству отчет вида Пользователь-Таблица-Суммарный запрос"
|
|
02.07.2010, 09:42 | #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). |
02.07.2010, 10:11 | #11 |
Axapta
|
Цитата:
Цитата:
Если вы пытаетесь разобраться, как что-либо сделать (а не сообщаете об ошибке), начинайте с описания цели. И только потом описывайте конкретный шаг на пути к ней, который вы оне смогли выполнить.
Зачастую люди, которым необходима техническая помощь, имеют на уме высокоуровневую цель и привязываются к одному из возможных, по их мнению, путей ее достижения. Они просят помочь выполнить один шаг, не отдавая себе отчета в том, что выбрали неверный путь. Чтобы разобраться в этом, может потребоваться много усилий. |
|
|
За это сообщение автора поблагодарили: AGRESSOR (1). |
02.07.2010, 10:39 | #12 |
Модератор
|
Если у Вас есть ВНЯТНО спроектированная структура групп пользователей, если RLS группы отделены от групп с правами пользователей, достаточно простого как дверь отчета { Пользователь - Имя - Группа - Описание }. Если нет - наведите таки порядок или продолжайте рожать ежиков
__________________
-ТСЯ или -ТЬСЯ ? |
|
02.07.2010, 10:50 | #13 |
Участник
|
|
|
04.07.2010, 11:18 | #14 |
Модератор
|
А можно с этого места поподробнее? Например, в каких версиях это нельзя сделать?
__________________
-ТСЯ или -ТЬСЯ ? |
|
05.07.2010, 06:54 | #15 |
Axapta Retail User
|
_scorp_, немного не поняла, в чем проблема сделать в 3-ке также как вы привели для 4-ки пример?
у нас в 3-й (SP3) сейчас настроено так - есть общая группа "кассир" - где выданы все права на работу с кассами (не RLS). и отдельно группы Касса1 Касса2 Касса3 и т.д. - где права на конкретную кассу (ограничены RLS) все работает отлично. |
|
05.07.2010, 09:00 | #16 |
Сам.AX
|
2 Alexius:
Большое спасибо. За основу взял ваш второй вариант, так как нужен именно SQL-запрос 2 oip, Vadik: Смею предположить, что именно оптимизацией групп и хочет заняться начальство Оффтоп: Сам ненавижу работать без понимания цели, но начальство оно ж Там, а мы тут |
|
05.07.2010, 08:48 | #17 |
Участник
|
Поведение тройки, например: Проблема с RLS и SecurityKey.
Про различия 3.0 - 4.0 - 2009 обсуждалось, например, начиная с этого поста: Безопасность на уровне записей
__________________
Ivanhoe as is.. |
|