Пользователь ClickHouse для Renta
Renta подключается к ClickHouse как обычный пользователь и работает только внутри базы данных, указанной в подключении. Ниже собраны права для такой учётной записи и команды, которые их выдают.
Выполняйте команды от учётной записи с правами управления доступом, например от администратора кластера. В управляемом сервисе сначала создайте пользователя в консоли провайдера, а права выдайте по SQL.
Что Renta выполняет в вашей базе
Каждое право из списка ниже соответствует запросу, который коннектор отправляет во время работы пайплайна.
| Запрос | Право |
|---|---|
| EXISTS TABLE и тестовый запрос при нажатии Save | SELECT |
| CREATE TABLE для таблицы назначения на первом запуске | CREATE TABLE |
| INSERT INTO ... SELECT * FROM url(...) на каждом запуске | INSERT, URL, CREATE TEMPORARY TABLE |
| TRUNCATE TABLE при полной перезагрузке | TRUNCATE |
| ALTER TABLE ... DELETE для окна перезаписи | ALTER TABLE |
| DROP TABLE при изменении списка полей пайплайна | DROP TABLE |
Создание пользователя
Придумайте имя и пароль, затем создайте учётную запись.
CREATE USER renta IDENTIFIED WITH sha256_password BY 'your-strong-password';Те же имя и пароль укажите в полях User и Password подключения ClickHouse в Renta.
Права в базе данных
Renta создаёт и перезаписывает собственные таблицы, поэтому выдайте права на таблицы той базы, на которую смотрит подключение.
GRANT
SELECT,
INSERT,
ALTER TABLE,
CREATE TABLE,
DROP TABLE,
TRUNCATE
ON default.*
TO renta;Замените default на имя вашей базы. Грант на всю базу покрывает таблицы всех пайплайнов, которые вы добавите позже.
Чтобы сузить права, выдайте тот же набор на каждую таблицу назначения по имени. Имена возьмите из поля Table name каждого пайплайна, который пишет в эту базу.
GRANT
SELECT,
INSERT,
ALTER TABLE,
CREATE TABLE,
DROP TABLE,
TRUNCATE
ON default.renta_sessions
TO renta;
GRANT
SELECT,
INSERT,
ALTER TABLE,
CREATE TABLE,
DROP TABLE,
TRUNCATE
ON default.renta_events
TO renta;Права по отдельным таблицам придётся дополнять каждый раз, когда вы создаёте пайплайн с новым Table name. Запуск в таблицу, к которой у учётной записи нет доступа, падает с ошибкой Not enough privileges for added ClickHouse user.
Доступ к хранилищу Renta
Renta записывает извлечённые строки в Parquet-файлы и загружает их табличной функцией url, поэтому учётной записи нужны ещё два глобальных права.
GRANT
CREATE TEMPORARY TABLE,
URL
ON *.*
TO renta;В ClickHouse 25.7 и новее права на источники переименованы. На таких версиях выдайте право на чтение явно.
GRANT READ ON URL TO renta;Самому серверу тоже нужно разрешить обращаться к хосту хранилища. Если в конфигурации есть секция remote_url_allow_hosts, добавьте в неё storage.googleapis.com.
<remote_url_allow_hosts>
<host>storage.googleapis.com</host>
</remote_url_allow_hosts>Пустая секция remote_url_allow_hosts блокирует все внешние хосты. Запуски тогда падают с сообщением Attempt to load data from an unauthorized remote URL into ClickHouse, это ошибка ClickHouse 491.
Проверка результата
Прежде чем создавать подключение, посмотрите, что в итоге получила учётная запись.
SHOW GRANTS FOR renta;Дальше откройте страницу назначения ClickHouse в Renta и нажмите Save в форме подключения. Renta выполнит тестовый запрос к базе и сразу сообщит о проблеме с правами.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.