Редактировал(а) Ирина Сафонова 22.03.2024, 15:21

От версии 2.1
отредактировано Ирина Сафонова
на 29.02.2024, 00:24
Изменить комментарий: К данной версии нет комментариев
К версии 9.1
отредактировано Ирина Сафонова
на 22.03.2024, 00:09
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Название
... ... @@ -1,1 +1,1 @@
1 -Настройка фильтров безопасности на уровне строк
1 +Фильтры безопасности на уровне строк
Содержимое
... ... @@ -1,12 +1,28 @@
1 +{{box cssClass="floatinginfobox" title="**Содержание**"}}
2 +{{toc/}}
3 +{{/box}}
4 +
5 +(% data-xwiki-non-generated-content="java.util.List" %)
6 +(((
7 += Создание правила =
8 +)))
9 +
10 +----
11 +
1 1  При необходимости в пункте меню **Безопасность на уровне строк **создайте правила, которые назначаются конкретной БД и набору ролей.
2 2  
3 3  ~1. Нажмите на кнопку **Правило**.
4 4  
5 -[[image:Кнопка добавления правила.PNG||height="351" width="1400"]]
16 +[[image:Кнопка добавления правила.PNG||data-xwiki-image-style-border="true" height="301" width="1200"]]
6 6  
7 -
8 8  2. В открывшемся окне заполните поля. Обязательные поля отмечены звездочкой.
19 +
9 9  
21 +{{info}}
22 +Примечание.
23 +
24 +{{/info}}
25 +
10 10  (% class="table-bordered" style="width:535px" %)
11 11  (% class="active" %)|(% style="width:257px" %)**Поле**|(% style="width:274px" %)**Комментарий**
12 12  |(% style="width:257px" %)**Название правила**|(% style="width:274px" %)Введите наименование.
... ... @@ -19,12 +19,14 @@
19 19  |(% style="width:257px" %)**Групповой ключ**|(% style="width:274px" %)Фильтры с тем же групповым ключом объединяются операцией {{code language="none"}}OR{{/code}} внутри группы, в то время как разные группы фильтров — операцией {{code language="none"}}AND{{/code}}. Неопределенные групповые ключи считаются уникальными группами, то есть не объединяются вместе. Например, если в таблице три фильтра, из которых два относятся к отделам {{code language="none"}}Finance{{/code}} и {{code language="none"}}Marketing{{/code}} (групповый ключ = 'department'), а один — к региону {{code language="none"}}Europe{{/code}} (групповый ключ = 'region'), условие применяет фильтр (department = 'Finance' OR department = 'Marketing') И (region = 'Europe').
20 20  |(% style="width:257px" %)**Оператор**|(% style="width:274px" %)Условие, которое добавляется к оператору {{code language="none"}}WHERE{{/code}}. Например, чтобы возвращать строки только для определенного клиента, определите обычный фильтр с условием `client_id = 9`. Чтобы не отображать строки, если пользователь не принадлежит к роли фильтра RLS, создайте базовый фильтр с предложением `1 = 0` (всегда false).
21 21  
22 -3. Сохраните правило по кнопке **Добавить**.
38 +3. Сохраните правило.
23 23  
24 -[[image:Пример правила.PNG||data-xwiki-image-style-border="true" height="1233" width="812"]]
40 +[[image:Кнопка сохранения в карточке правила.PNG||data-xwiki-image-style-border="true" height="753" width="524"]]
25 25  
26 -== Фильтрация в реестре правил ==
42 += Фильтрация в реестре правил =
27 27  
44 +----
45 +
28 28  В реестре доступна фильтрация по:
29 29  
30 30  * имени,
... ... @@ -31,17 +31,21 @@
31 31  * типу фильтра,
32 32  * групповому ключу.
33 33  
34 -[[image:Фильтрация правил.PNG||data-xwiki-image-style-border="true"]]
52 +[[image:Фильтрация правил.PNG||data-xwiki-image-style-border="true" height="301" width="1200"]]
35 35  
36 -== Прочие действия ==
54 += Прочие действия =
37 37  
56 +----
57 +
38 38  Доступно:
39 39  
40 40  * удаление и редактирование правил,
41 41  * множественный выбор правил.
42 42  
43 -== Пример настройки ==
63 += Пример настройки =
44 44  
65 +----
66 +
45 45  Используя фильтры безопасности на уровне строк в меню пункте меню **Безопасность**, при необходимости создайте фильтры, которые назначаются конкретной таблице и набору ролей. Если хотите, чтобы члены финансовой группы имели доступ только к строкам, в которых {{code language="none"}}department = "finance"{{/code}}, сделайте следующее:
46 46  ~1. Создайте фильтр безопасности на уровне строк с {{code language="none"}}department = "finance"{{/code}}.
47 47  2. Назначьте предложение роли **Финансы** и таблице, к которой оно применяется.
... ... @@ -48,4 +48,3 @@
48 48  3. Поле предложения, которое может содержать произвольный текст, добавьте к предложению {{code language="none"}}WHERE{{/code}} сгенерированного оператора SQL. Таким образом, вы даже можете настроить фильтр //За последние 30 дней// и применить его к определенной роли с таким предложением, как {{code language="none"}}date_field > DATE_SUB(NOW(), INTERVAL 30 DAY){{/code}}. Фильтр поддерживает несколько условий: {{code language="none"}}client_id = 6{{/code}} И {{code language="none"}}advertiser="foo"{{/code}} и так далее.
49 49  
50 50  Все соответствующие фильтры безопасности на уровне строк объединяются вместе — внутри различные предложения SQL объединяются с помощью операторов AND. Это означает, что можно создать ситуацию, когда две роли конфликтуют таким образом, что подмножество таблиц может быть пустым. Например, фильтры** **{{code language="none"}}client_id=4{{/code}} и {{code language="none"}}client_id=5{{/code}}, примененные к роли, приведут к тому, что пользователи этой роли будут иметь {{code language="none"}}client_id=4{{/code}} и {{code language="none"}}client_id=5{{/code}}, добавленные к их запросу, что никогда не может быть истиной.
51 -
Кнопка сохранения в карточке правила.PNG
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ISafonova
Размер
... ... @@ -1,0 +1,1 @@
1 +65.9 KB
Содержимое
Фильтрация правил.PNG
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ISafonova
Размер
... ... @@ -1,0 +1,1 @@
1 +102.9 KB
Содержимое