AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.07.2010, 18:54   #8  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Безумная идея:

В Class/SysQueryRun/new для нужных таблиц добавить range типа
X++:
strfmt('((DataAreaId == DataAreaId) || (DataAreaId == "%1"))', curuserid())
это если длина кода пользователя <=3
X++:
strfmt('((DataAreaId == DataAreaId) || (TableField == "%1"))', curuserid())
TableField - любое строковое поле таблицы с длиной >=5
X++:
strfmt('((DataAreaId == DataAreaId) || (RecId == %1))', xUserInfo::find().RecId)
RecId пользователя будет потом несколько сложнее разобрать, но возможно.

В профайлере добавить фильтр на текст %DATAAREAID=DATAAREAID% (сомневаюсь, что найдутся еще такие запросы ).

PS. По SysQueryRun например тут Не работает RLS по связанной таблице. Так и должно быть?

PS2. Реализация и последствия на Вашей совести
За это сообщение автора поблагодарили: AGRESSOR (1).
Теги
rls, security, права доступа, права доступа на уровне записей (rls)

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как преобразовать запрос в SQL-инструкцию Oloops DAX: Программирование 7 07.07.2008 20:38
Поймать SQL запрос при формировании отчета Qaz Qwerty DAX: Программирование 7 12.06.2008 01:46
RLS&Расширенный запрос donMigel DAX: Функционал 14 18.01.2008 13:32
SQL мониторинг + прямой запрос к SQL Alex_KD DAX: Программирование 17 29.05.2007 03:58
SQL Запрос Александр Костоусов DAX: Программирование 5 24.09.2004 12:15

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:46.