У меня в Clickhouse две базы данных:
- тестовое задание
- test2
Таблицы в этой БД, созданные запросом:
CREATE TABLE test.Migrations3 ( date Date DEFAULT toDate(now()), id UInt8, time UInt64) ENGINE = ReplicatedMergeTree('/clickhouse/tables/shard/test/Migrations3', 'clickhouse1', date, (id, time), 8192);
и я создаю двух пользователей для этих баз данных. Разрешения пользователя такие:
<user>
<password>pass</password>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
<ip>127.0.0.1</ip>
</networks>
<!-- Settings profile for user. -->
<profile>default</profile>
<!-- Quota for user. -->
<quota>default</quota>
</user>
Я получил некоторые данные в этих таблицах, они были вставлены следующим образом:
INSERT INTO test.Migrations3 (date) VALUES (689);
Теперь я хочу создать нового пользователя только для чтения с доступом к тесту базы данных, но только для таблицы Migrations3 в этой БД, а не для всех таблиц в базе данных. Я прочитал документацию и не могу найти, как настроить этот доступ.
Теперь я пытаюсь использовать эти разрешения:
<user1>
<databases>
<test>
<Migrations3>
<filter>id = 1</filter>
</Migrations3>
</test>
</databases>
<password>pass</password>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
<ip>127.0.0.1</ip>
</networks>
<!-- Settings profile for user. -->
<profile>readonly</profile>
<!-- Quota for user. -->
<quota>default</quota>
<allow_databases>
<database>test</database>
</allow_databases>
</user1>
Когда я запускаю select * from test.Migrations3
, я вижу все строки, но я уже настроил фильтр в разрешениях, показывающий только id -eq 1
Что я делаю не так?