|
v8.2: Не работает RLS - "глюк" с запросами по правам | ☑ | ||
---|---|---|---|---|
0
DragonCat
26.12.11
✎
17:51
|
Уже в который раз сталкиваюсь с такой ситуацией: серверная БД, управяемое приложение, внес массовые ограничения (чтение/изменение/добавление по нескольким документам для нескольких ролей), естественно, во многих случаях - копированием.
Пример запроса: КонвертацияВалют ИЗ Документ.КонвертацияВалют КАК КонвертацияВалют ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МатрицаДоступаПроекты КАК МатрицаДоступаПроекты ПО (МатрицаДоступаПроекты.Пользователь = &ТекущийПользователь) И КонвертацияВалют.Проект = МатрицаДоступаПроекты.Проект И (КонвертацияВалют.ЦФОПлательщик = МатрицаДоступаПроекты.ЦФО ИЛИ КонвертацияВалют.ЦФОПолучатель = МатрицаДоступаПроекты.ЦФО) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МатрицаДоступаРасчетныеСчета КАК МатрицаДоступаРасчетныеСчета ПО (МатрицаДоступаРасчетныеСчета.Пользователь = &ТекущийПользователь) И (КонвертацияВалют.РасчетныйСчетСписания = МатрицаДоступаРасчетныеСчета.РасчетныйСчет ИЛИ КонвертацияВалют.РасчетныйСчетПоступления = МатрицаДоступаРасчетныеСчета.РасчетныйСчет) ГДЕ (НЕ(МатрицаДоступаПроекты.Пользователь ЕСТЬ NULL И МатрицаДоступаРасчетныеСчета.Пользователь ЕСТЬ NULL )) И КонвертацияВалют.ВидДС = ЗНАЧЕНИЕ(Перечисление.ВидыДС.Наличные) В итоге - ограничения просто нет. Но стоит снова залесть в настройки, немного переставить чтото (элементарно - местами связи), как все начинает работать. Очень похоже на глюк работы конфигуратора с этой частью метаданных (или как оно сейчас в 8ке?) Встречался ли кто с такой ситуацией? Есть ли решение? |
|||
1
asady
26.12.11
✎
18:11
|
(0) RLS запрос должен возвращать одно значение (Истина или ложь)
у тебя что возвращает этот запрос |
|||
2
DragonCat
26.12.11
✎
18:14
|
RLS запрос задает правила отбора строк таблицы :)
КонвертацияВалют ИЗ Документ.КонвертацияВалют КАК КонвертацияВалют ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МатрицаДоступаПроекты КАК МатрицаДоступа ...и т.д. |
|||
3
asady
26.12.11
✎
18:30
|
Судя по твоему запросу ты копировал устаревшие РЛС запросы - посмотри как сделаны РЛС запросы в типовой УПП - они довольно эффективно работают
|
|||
4
DragonCat
27.12.11
✎
12:41
|
Я вообще не копировал. Это кусок полностью самописной (моей) конфы. В ней из типового - только БСП.
И ту тречь не об эффективности. Вопрос в том, что набросанные однотипные запросы не работают в части документов. При этом, при внесении через форму ввода (не напрямую в списке ограничений доступа к данным) небольших изменений (поменял местами условия связи, например) - они начинают работать. При перезагрузке из хранилища В ТОЧНОСТИ такого же запроса - тоже начинают. Но, при этом, изначально они и были установлены на рабочей базе загрузкой из хранилища. Вопрос в том, встречался ли кто с подобного рода проблемами? Может я просто не там смотрю, а может это старый и (почти) всем известный глюк конфигуратора. Или глюк у нас в фирме в рабочей среде какой... |
|||
5
Necessitudo
27.12.11
✎
12:44
|
Наблюдаю такое периодически - но 8.1
|
|||
6
vde69
27.12.11
✎
12:46
|
Копай в сторону:
во первых "ДеМонические обновления" во вторых наличие ролей которые перекрывают RLS мое мнение 1. Для одного пользователя нельзя устанавливать несколько ролей с RLD (исключение "ГДЕ ЛОЖЬ") 2. В идеале в конфигурации вообще только одна роль с RLS зы планирую после НГ статейку написать |
|||
7
МишельЛагранж
27.12.11
✎
13:17
|
(6) никакая роль RLS не перекроет - это RLS перекроет роль.
И вообще, RLS - это ограничение, а не разрешение, поэтому он однозначно "поборет" любое разрешение роли. >>мое мнение - все верно. Уточнение: для одного пользователя МОЖНО и нужно устанавливать несколько ролей с RLS, только обязательно следить - чтобы эти РЛС были на РАЗНЫЕ объекты конфы. Иначе будет непредсказуемое даже самим Нуралиевым огораниячения и в конце - полная ж с правами доступа. В идеале должно быть четкое понимание, где какие РЛС, и отслеживание неперсечений в рамках одного пользователя. |
|||
8
МишельЛагранж
27.12.11
✎
13:18
|
(6) >>планирую после НГ статейку написать
- пока не торопитесь, иначе подведете множество новичков под РЛС... ))) - или напишите, как можно простенькие правильца накатать и забыть про кодирование прав... |
|||
9
vde69
27.12.11
✎
13:38
|
(7) роль без РЛС ВСЕГДА перекрывает все установленые РЛС других ролей!!!
поробуй пользователю дать полные права + роль с RLS и увидешь что у него будут ПОЛНЫЕ права |
|||
10
МишельЛагранж
27.12.11
✎
13:41
|
(9) не будет. уже пробовал.
если в одной роли - РЛС на объект, а в другой - на него разрешено, каша получается. каша: 80% - работает, 20% - дает "нет прав доступа или хуже ругается )) |
|||
11
vde69
27.12.11
✎
13:42
|
(10) это от кеша зависит (или от других связаных обьектов), очисти кеш сервера и будет 100% разрешение. Проверял много раз.
|
|||
12
Fish
27.12.11
✎
13:46
|
(8), (10) Не путайте лучше ВЫ людей. В ветке v8: Чтобы понять 1С - надо стать безумным шляпником! стало понятно, что Вы ничего не понимаете в приоритетах операторов языка, теперь понятно, что еще и в приоритетах прав в 1С ничего не шарите. Повторю свой вопрос из той ветки:
может Вам не стоит заниматься тем, чего не понимаешь, т.е. программированием? :))) |
|||
13
Fish
27.12.11
✎
13:54
|
(7) "Иначе будет непредсказуемое даже самим Нуралиевым огораниячения и в конце - полная ж с правами доступа" - В идеале, не должно быть каши в голове, и надо четко представлять, как работают задействованные тобой механизмы. И никакой ж тогда не будет. И Нуралиев тут ни при чем :)))
|
|||
14
y88
27.12.11
✎
13:58
|
(0) а здесь нет ошибки:
ГДЕ ( НЕ( МатрицаДоступаПроекты.Пользователь ЕСТЬ NULL И МатрицаДоступаРасчетныеСчета.Пользователь ЕСТЬ NULL ) ) |
|||
15
Necessitudo
27.12.11
✎
14:00
|
(6) Да-да-да, и мы постоянно демоническое обновление используем. Очистка кеша поможет?
|
|||
16
vde69
27.12.11
✎
14:04
|
(15) с этого стоит начать! только кеш СЕРВЕРНЫЙ а не клиентский
|
|||
17
golden-pack
27.12.11
✎
14:08
|
(7) полный бред. ложь звездешь и провокация.
Что ты тут пишешь ? "Обычная" роль всегда перекрывает RLS. Я настраивал RLS(писал свои запросы) в УПП для тучипользователей. И я знаю как они работают на 100%. Кстати давно заметил твои неадекватные посты. |
|||
18
golden-pack
27.12.11
✎
14:10
|
(6) Для пользователей стараюсь тоже делать 1 с РЛС, то есть роль пользователь (который с РЛС по некоторым объектам) + 1 своя.
А за будущую статейку +. |
|||
19
golden-pack
27.12.11
✎
14:14
|
(15) В кэше могла застрять старая роль. То есть может помочь, а если другая причина(перекрытие другими ролями пример) то не поможет.
|
|||
20
y88
27.12.11
✎
14:15
|
влезу:
1С 8.2 БП 2.0 переносим учет в одну организацию. Нужно ограничить доступ - раньше был стандартный RLS по организациям Планирую ввести реквизит ОрганизацияДоступ в рег.бух. Хозрасчетный и некоторые документы (заполняться будет автоматом) и добавить новую роль с RLS по этому реквизиту Я что-то упустил? |
|||
21
МишельЛагранж
27.12.11
✎
14:21
|
(17) 1с-ники такие затейники..
РЛС - работает по другим механизмам, чем ограничения роли, и сами по себе они не пересекаются. (12) я-то как раз не забыл про НОРМАЛЬНОЕ программирование, а не безумное чаепитие.... но ведь безумие заразно, в отличие от здравия, до которого надо принудительно лечиться... это не лично к вам, это к 1с-у ))) |
|||
22
golden-pack
27.12.11
✎
14:24
|
(21) Епт ... у меня УПП на производтственном предприятиие, работает много пользователей с РЛС ... и ты мне говоришь что работают по другим механизмам ? Ты бредишь ? Ты это гдето вычитал ? Хватит уже позориться...
|
|||
23
МишельЛагранж
27.12.11
✎
14:24
|
(13) в идеале - это среда должна предоставлять четкие и ясные методы и возможности, а не возносить дикий гон и грязь на форуме.
Но, "я 1с-ника узнаю по площадной брани за монитором".... |
|||
24
МишельЛагранж
27.12.11
✎
14:25
|
(22) РЛС аналог роли? поздравляю, чаепитие продолжается... даже на производственном предприятии с УПП... и много пользователей....
|
|||
25
golden-pack
27.12.11
✎
14:27
|
(24) РЛС аналог роли? - это что за бредовый вопрос ? Мишель ...
|
|||
26
Fish
27.12.11
✎
14:36
|
(23) Извини, конечно, но среда тебе ничего не должна :))) А "четкие и ясные методы и возможности" описаны во многочисленных документациях и руководствах, надо только не лениться это изучать и не обвинять разработчиков в том, что они не подстроились под твоё несколько извращённое понимание, каким должен быть язык программирования. :)))
З.Ы. А "дикий гон" пока встречается только в твоих постах :))) |
|||
27
sereban
27.12.11
✎
14:40
|
(0) Сталкивался с подобными проблемами при настройке RLS. Зачастую когда меняешь поля или текст ограничения доступа они в конфигурации сохраняются, а к базе не применяются, а иногда вообще после перезапуска конфигуратора остаются старые значения. После изменения текста ограничения вручную или копированием или полей, когда закроешь форму редактирования(если менял в форме), жми Enter. У меня прокатывало.
|
|||
28
Fish
27.12.11
✎
14:45
|
(21) Я тоже не забыл еще про нормальное программирование (хотя подозреваю, что у нас эти понятия несколько расходятся). Просто для меня, например, нет особой разницы, на каком языке программировать, и я никогда не буду пенять на якобы "тупость" разработчиков языка. Я просто изучаю язык, необходимую документацию по нему, и никакой "каши" и "полной ж" в моих программах почему-то не происходит :)) ЧЯДНТ?
З.Ы. А по поводу 1С - да, конечно, как язык программирования, 1С оставляет желать лучшего, но не надо забывать, что 1С - это узкоспециализированная среда и предназначена и заточена для создания прежде всего учетных систем. А если ты чего-то не догоняешь, так не лучше ли попробовать сначала разобраться, а не обвинять всех в повальном безумии только потому, что не осиливаешь логику 1с? |
|||
29
МишельЛагранж
27.12.11
✎
14:48
|
(12) >>что Вы ничего не понимаете в приоритетах операторов языка
- вообще в той теме было выяснено, что 1с-ники очень далеки от програмирования как отрасли. И пересаживаются так, как скажет Шляпник. У 1с-ников никогда не виновата 1с - или "это наследие SQL так!", или "в Си тоже самое!", или еще что... а 1с - настолько могучая система, что вот-вот... но мелкие всякие Си с SQL пакости делают... |
|||
30
МишельЛагранж
27.12.11
✎
14:49
|
(28) я считаю саму логику 1с-а безумной )))
|
|||
31
МишельЛагранж
27.12.11
✎
14:53
|
(26) дикий гон - это безумное клепание безумных версий среды разработки с последующим их принудительным уничтожением и объявлением всех остальных придурками и непонимающими великого замысла )))
|
|||
32
Fish
27.12.11
✎
14:53
|
(30) Тут я даже с Вами в чём-то соглашусь :))) Но это никак не мешает мне зарабатывать копеечку при помощи 1С :))) Просто надо эту безумную логику понять, что, в принципе не так уж и сложно, т.к. в любом безумии есть система :)))
|
|||
33
golden-pack
27.12.11
✎
14:54
|
(29-31) троль
|
|||
34
Reset
27.12.11
✎
14:59
|
(33) (имхо)Он не тролль в чистом виде, я подозреваю, что все, что он пишет, он думает _На_Самом_деле. Ну, точнее, что у него заменяет процесс, называемый "думать".
То есть, он совершенно искреннен в своих постах. |
|||
35
Fish
27.12.11
✎
15:02
|
+(32) Тут ведь бесполезно спорить об уровне квалификации, я просто веду разговор к тому, что для того, чтобы быть настоящим профессионалом в программировании, ИМХО надо уметь хорошо разбираться в разных языках и средах разработки. Независимо от того, насколько безумными ты их считаешь :)) Есть и более безумные языки, чем 1с, например Brainfuck :)))
|
|||
36
Fish
27.12.11
✎
15:05
|
(31) Есть хорошее выражение: "Если ты такой умный, то где твои деньги?". Я немного перефразирую: Если ты такой умный, то где же твоя система, которая круче 1С?
|
|||
37
DragonCat
28.12.11
✎
12:24
|
(27) Спасибо большое. Попробую. Факт того, что не я один на такое напоролся - весьма радует (подтверждая собственную адекватность :) )
|
|||
38
DragonCat
28.12.11
✎
12:27
|
(28),(29) Ребят. В теме изучался конкретный вопрос, к программированию почти не имеющий отношения. Зачем тут трололо-разборки устраивать? Спорьте гденить еще.
По поводу RLS - связь с ролью без ограничений - даст снятие ограничений (запросы ограничений не будут налагаться на запросы к данным). Две роли к одним данным с разными ограничениями - дадут кашу, не работоспособную. ВУсе так, но какое отношение это имеет к теме? |
|||
39
МишельЛагранж
31.12.11
✎
01:11
|
(38) ну раз не понимаете, зачем мы тут про программирование - то вот вам по теме:
раз не рабоатет РЛС-запрос - переписывайте его по-другому. Почему так? а это уже тот самый вопрос, где 1с, а где - программирование.... ))) |
|||
40
DragonCat
10.01.12
✎
10:52
|
(39) Да я уже все понял - это просто очередной выплеск вашего холивара. Теперь - в теме про RLS :)
Про запрос - снова не в тему. Не работает механизм его применения. В (27) толковый парень все разъяснил. Если интересно - почитайте. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |