Как изменить users.xml от того, что он доступен только для чтения?

#clickhouse #wsl-2

#clickhouse #wsl-2

Вопрос:

Я настроил рабочий экземпляр сервера ClickHouse с помощью docker-compose. Прямо сейчас я пытаюсь предоставить привилегии (разрешение на запись) пользователю, который определен в users.xml как таковой:

 <users>
        <deep>
            <access_management>1</access_management>
            <password>xxx</password>
            <networks incl="networks" replace="replace">
                <ip>::/1</ip>
                <ip>192.168.65.155</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
        </deep>
</users>
 

Я использую эту команду

ПРЕДОСТАВЬТЕ ВСТАВКУ В registry.simple_people ДЛЯ глубокого

что дает мне это сообщение об ошибке:

 Code: 495, e.displayText() = DB::Exception: Cannot update user `deep` in users.xml because this storage is readonly: Couldn't update user `deep`. Successfully updated: none (version 20.12.3.3 (official build))

 

Я прочитал документы из ch здесь https://clickhouse.tech/docs/en/sql-reference/statements/grant / а также я установил для параметра только для чтения значения 2 и 0 без какой-либо разницы в выходных данных. Может ли кто-нибудь из вас увидеть, где я мог что-то пропустить или что я должен сделать, чтобы иметь возможность сделать users.xml «не-только для чтения»?

Примечание:

Пользователь «глубоко» может читать из базы данных.

Я нахожусь на WSL: Ubuntu-20.04

Ответ №1:

Скорее всего, вы выполняете вставки, используя HTTP GET вместо POST.

https://clickhouse.tech/docs/en/interfaces/http/#http-interface

При использовании метода GET устанавливается значение «только для чтения». Другими словами, для запросов, которые изменяют данные, вы можете использовать только метод POST . Вы можете отправить сам запрос либо в теле сообщения, либо в параметре URL.



Существует два способа управления пользователями.

Старый XML-способ и новый create / grant / RBAC.

Пользователям, созданным в формате XML, не может быть предоставлено разрешение. Они управляются с помощью настроек XML.

По УМОЛЧАНИЮ пользователи XML имеют полный доступ ко ВСЕМУ.

Вы можете настроить доступ ТОЛЬКО для чтения с помощью XML profile и установить этот профиль для пользователя XML.

     <profiles>
        <roprofile>
            <readonly>1</readonly>