Создать роль
Если у вас есть кластер ClickHouse®, вы можете создать в нем роль с помощью кастомного ресурса ClickhouseRole.
В роли задаются:
- наследование других ролей (
spec.membership); - блоки прав (
spec.grants) на объекты ClickHouse® четырех типов: база данных, таблица, именованная коллекция, администрирование пользователей и ролей.
Ресурс ClickhouseRole должен находиться в том же пространстве имен, что и кластер ClickhouseCluster. Имя ресурса должно соответствовать шаблону <название_кластера>-<имя_роли>.
Через CLI
-
Создайте файл ресурса
ClickhouseRole. Например, с помощью командыtouch clickhouserole.yaml. -
Откройте файл и вставьте конфигурацию ниже:
Роль с правом чтенияРоль с наследованием и правами на таблицуapiVersion: clickhouse.stackland.yandex.cloud/v1alpha1 kind: ClickhouseRole metadata: name: <название_кластера>-reader spec: cluster: <название_кластера> name: reader grants: - database: name: <имя_базы> privileges: - SELECTapiVersion: clickhouse.stackland.yandex.cloud/v1alpha1 kind: ClickhouseRole metadata: name: <название_кластера>-writer spec: cluster: <название_кластера> name: writer membership: - reader grants: - database: name: <имя_базы> privileges: - SELECT - INSERT - CREATE TABLE - ALTER TABLE - table: database: <имя_базы> table: <имя_таблицы> privileges: - SELECT - INSERTГде:
spec.cluster— название кластераClickhouseCluster.spec.name— имя роли в ClickHouse®.spec.membership— необязательный список ролей, от которых наследуется эта роль. В списке указываются значенияspec.nameдругих ресурсовClickhouseRole.spec.grants— список блоков прав. В каждом блоке заполняется ровно одно из полей:database,table,namedCollection,access.
-
Примените манифест:
kubectl apply -f clickhouserole.yaml -n <название_проекта>.
Допустимые привилегии
Набор допустимых привилегий зависит от типа блока прав. Значения должны совпадать с CRD посимвольно, включая пробелы в многословных привилегиях.
|
Тип блока |
Поле в манифесте |
Допустимые привилегии |
|
База данных |
|
|
|
Таблица |
|
|
|
Именованная коллекция |
|
|
|
Администрирование пользователей и ролей |
|
|
Через консоль управления
-
Если вы еще не открыли проект, выберите проект.
-
В левом меню выберите ClickHouse® Clusters.
-
Выберите кластер.
-
Перейдите на вкладку Роли.
-
Нажмите Создать.
-
Заполните поля:
- Имя роли — имя роли в ClickHouse®.
- Наследовать роли от — необязательный список ролей этого же кластера, от которых наследуется новая роль. Можно выбрать несколько ролей.
-
В блоке Права доступа настройте права. По умолчанию доступен один блок прав:
- В переключателе Права на выберите тип объекта: База данных, Таблица, Именованная коллекция или Администрирование пользователей и ролей.
- Для типа База данных выберите базу и привилегии.
- Для типа Таблица выберите базу, укажите имя таблицы и выберите привилегии.
- Для типов Именованная коллекция и Администрирование пользователей и ролей выберите только привилегии.
Чтобы добавить еще один блок прав, нажмите Добавить. Чтобы удалить блок прав, нажмите Удалить на нужном блоке.
Перечень допустимых привилегий для каждого типа блока приведен в разделе Допустимые привилегии.
-
Нажмите Создать.
Готово, роль появится в списке на вкладке Роли.