184 похожих чатов

Про row policy (version 21.9.5): подскажите плиз: полиси работает на

локальные таблицы (mergeTree) и например ODBC, но не отрабатывает на дистрибьютед (смотрит на соседний кластер выделенным юзером) - это баг с предикатами/порядком обхода?
или это ожидаемое поведение и надо заворачивать в костыли?

9 ответов

16 просмотров

что значит "не отрабатывает"? когда вы читаете из local таблицы, то видите только часть строк, а когда из distributed, которая читает из этой самой local, все строки?

Piotr-Liakhavets Автор вопроса
ivan
что значит "не отрабатывает"? когда вы читаете из ...

дистрибьютед смотрит в другой кластер (данные только там, локально их не дублируем)

Piotr-Liakhavets Автор вопроса

@den_crane на Вас надежда row policy на таблицы distributed есть лёгкий способ накинуть? (юз-кейс - RLS, т.е. для многих разных пользователей различные правила доступности данных)

Piotr Liakhavets
@den_crane на Вас надежда row policy на таблицы di...

я читал, но ничего не понял. что за соседний кластер, на кого наложили полиси, где наложили

Piotr-Liakhavets Автор вопроса
Denny [Altinity]
я читал, но ничего не понял. что за соседний кла...

-- remote cluster create database test_row_policy on cluster preagg_tier; create table test_row_policy.tab on cluster preagg_tier (app_code String, col1 UInt64) Engine=ReplicatedMergeTree() order by col1 partition by app_code; insert into test_row_policy.tab values ('acme', 111), ('borc', 222); select * from test_row_policy.tab; -- separate machine where intended RLS row-policy create database test_row_policy_on_preagg_tier; create table test_row_policy_on_preagg_tier.tab (app_code String, col1 UInt64) Engine=Distributed('preagg_tier','test_row_policy', 'tab'); create user test_user_check_permissions_1 IDENTIFIED WITH sha256_password BY '123' DEFAULT ROLE ALL; GRANT SELECT ON test_row_policy_on_preagg_tier.tab TO test_user_check_permissions_1; CREATE ROW POLICY OR REPLACE pol__test_user_check_permissions_1__test_row_policy_on_preagg_tier__tab ON test_row_policy_on_preagg_tier.tab FOR SELECT USING app_code in ('acme') AS PERMISSIVE TO test_user_check_permissions_1; -- as user test_user_check_permissions_1 select * from test_row_policy_on_preagg_tier.tab format CSV; -- >> "acme",111 "borc",222 постарался собрать минимально воспроизводимый пример история есть выделенная машина с КХ , часть инфы на ней материализована и на разграничение прав доступа на физические (локальные) таблички работает норм есть необходимость поделиться с пользователями еще даннми с других кластеров (тут↑ - преагг тир; физически прокинуть не получится банально по месту) и тут row policy почему-то не отрабатывает

Piotr Liakhavets
-- remote cluster create database test_row_policy ...

https://github.com/ClickHouse/ClickHouse/issues/28334

Piotr-Liakhavets Автор вопроса
Denny [Altinity]
https://github.com/ClickHouse/ClickHouse/issues/28...

понял, спасибо *схитрить както можно? надстройками через Merge или мож вьюхи с секьюрити=дефайнер появились?

Piotr-Liakhavets Автор вопроса
Denny [Altinity]
нету, ничего такого нет

понял, спасибо большое

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта