Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

В первую очередь необходимо создать пользователя-администратора, если такового еще нет.

Создать его можно в /etc/clickhouse-server/users.xml: отредактировать дефолтного пользователя, добавив или раскомментировав параметр access_management:

    ```
    <username>
        ...
        <access_management>1</access_management>
        ...
    </username>
    ``` 


Либо создать отдельный файл для пользователя  /etc/clickhouse-server/users.d/admin.xml:

<?xml version="1.0"?>
<yandex>
    <users>
    <!-- If user name was not specified, 'default' user is used. -->
        <admin>
            <password>password</password>
            <networks incl="networks" replace="replace">
                <ip>::/0</ip>
            </networks>
            <access_management>1</access_management>
            <quota>default</quota>
        </admin>
     <!-- Other users settings -->
     </users>

</yandex>


Более подробная информация по созданию пользователей находится в документации "1.17 Установка ClickHouse".

Параметр access_management позволит пользоваться SQL-ориентированным управлением доступом, то есть использовать команды CREATE USER, GRANT PRIVILEGES и т.д.

После внесения изменений в конфигурацию необходимо перезапустить сервис:

service clickhouse-server restart


Чтобы создать view необходимо, загрузить скрипт на создание представления: create-acct-view.sql. Находясь на хосте, на котором установлен ClickHouse, выполнить следующую команду: 

clickhouse-client -u %администратор% --password %пароль_администратора% < create-acct-view.sql

где %администратор% - логин пользователя ClickHouse, имеющего права администратора,  %пароль_администратора%  - его пароль.


Теперь нужно создать пользователя, которому будет доступен просмотр только представлений, но не оригинальных таблиц. Для этого требуется загрузить скрипт создания пользователя: create-read-user.sql. Затем, находясь на хосте, на котором установлен ClickHouse, выполнить следующую команду: 

clickhouse-client -u %администратор% --password %пароль_администратора% -m < create-read-user.sql

где %администратор% - логин пользователя ClickHouse, имеющего права администратора,  %пароль_администратора%  - его пароль.

После выполнения команды, будет создан пользователь ekhdreader с правами на чтение из ACCT_VIEW. Проверить создание пользователя можно следующим образом:

Подключиться к ClickHouse через клиент командной строки:

clickhouse-client -u ekhdreader --password ekhdpassword --database radius

Проверить доступ до ACCT_VIEW:

            test-vm1 :) show tables
        
            SHOW TABLES
        
            ┌─name──────┐
            │ ACCT_VIEW │
            └───────────┘
        
            1 rows in set. Elapsed: 0.002 sec. 
        ```
        ```    
            test-vm1 :) select count() from ACCT_VIEW 
        
            SELECT count()
            FROM ACCT_VIEW
        
            ┌─count()─┐
            │    2000 │
            └─────────┘
        
            1 rows in set. Elapsed: 0.013 sec. Processed 2.00 thousand rows, 8.00 KB (152.06 thousand rows/s., 608.22 KB/s.)

Проксирование данных из MySQL

Используется в случае необходимости получить представление (например, VIEW) из другой реляционной базы данных.

  1.  Создать database, таблицу с драйвером mysql и внешними данными.

    CREATE DATABASE IF NOT EXISTS eltex_ems;
     
    CREATE TABLE IF NOT EXISTS `eltex_ems`.`AP_VIEW` (
     `id` UInt32,
     `apName` String,
     `apType` String,
     `initTime` DateTime,
     `IpAddress` Nullable(String),
     `MacAddress` Nullable(String),
     `ActNumber` Nullable(String),
     `RegionId` Nullable(String),
     `City` Nullable(String),
     `Street` Nullable(String),
     `HouseNumber` Nullable(String),
     `Building` Nullable(String),
     `Office` Nullable(String),
     `OutOfService` Nullable(String)
    ) ENGINE = MySQL('127.0.0.1:3306', 'eltex_ems', 'AP_VIEW', 'ekhdreader', 'ekhdpassword');

    Изменить адрес "127.0.0.1" на необходимый IP-адрес

  2. Создать пользователя и дать ему привилегии на чтение данных:

    CREATE USER OR REPLACE ekhdreader IDENTIFIED BY 'ekhdpassword' SETTINGS PROFILE 'readonly';
     
    GRANT SELECT, SHOW TABLES, SHOW COLUMNS ON eltex_ems.AP_VIEW TO ekhdreader;
     
    GRANT SELECT(id, apName, apType, initTime, IpAddress, MacAddress, ActNumber, RegionId,
     City, Street, HouseNumber, Building, Office, OutOfService) ON eltex_ems.AP_VIEW TO ekhdreader;

    Подробнее описано на странице документации:

    https://clickhouse.tech/docs/ru/engines/table-engines/integrations/mysql/

  • Нет меток