Перейти к основному содержимому
Перейти к основному содержимому

Контроль доступа в ClickHouse Cloud

ClickHouse управляет доступом пользователей в двух местах: через консоль и через базу данных. Доступ к консоли управляется через пользовательский интерфейс clickhouse.cloud. Доступ к базе данных управляется через учетные записи пользователей базы данных и роли. Кроме того, пользователям консоли могут быть предоставлены роли в базе данных, которые позволяют пользователю консоли взаимодействовать с базой данных через нашу SQL консоль.

Пользователи консоли и роли

Настройте назначения ролей Организации и Сервиса на странице Консоли > Пользователи и роли. Настройте назначения ролей SQL консоли на странице настроек для каждого сервиса.

Пользователи должны быть назначены на роль уровня организации и могут дополнительно назначаться на сервисные роли для одного или нескольких сервисов. Сервисные роли могут быть дополнительно настроены для доступа пользователей к SQL консоли на странице настроек сервиса.

  • Пользователи, назначенные на роль Администратора Организации, по умолчанию получают роль Администратора Сервиса.
  • Пользователи, добавленные в организацию через интеграцию SAML, автоматически получают роль Члена.
  • Администратору Сервиса по умолчанию назначается роль администратора SQL консоли. Права доступа к SQL консоли могут быть удалены на странице настроек сервиса.
КонтекстРольОписание
ОрганизацияАдминистраторВыполнять все административные действия для организации и контролировать все настройки. Присваивается первому пользователю в организации по умолчанию.
ОрганизацияРазработчикВидеть доступ ко всему, кроме Сервисов, возможность генерировать ключи API только для чтения.
ОрганизацияБиллингВидеть использование и счета, а также управлять методами оплаты.
ОрганизацияЧленТолько вход с возможностью управлять настройками личного профиля. Присваивается пользователям SAML SSO по умолчанию.
СервисАдминистратор СервисаУправлять настройками сервиса.
СервисТолько для чтенияВидеть сервисы и настройки.
SQL консольАдминистратор SQL консолиАдминистративный доступ к базам данных в рамках сервиса, эквивалентный роли по умолчанию для базы данных.
SQL консольТолько для чтения SQL консолиДоступ только для чтения к базам данных в рамках сервиса
SQL консольПользовательскаяНастроить с использованием SQL GRANT заявления; назначить роль пользователю SQL консоли, назвав роль в честь пользователя

Чтобы создать пользовательскую роль для пользователя SQL консоли и предоставить ей общую роль, выполните следующие команды. Адрес электронной почты должен совпадать с адресом электронной почты пользователя в консоли.

  1. Создайте роль database_developer и предоставьте разрешения SHOW, CREATE, ALTER и DELETE.

  2. Создайте роль для пользователя SQL консоли [email protected] и назначьте ей роль database_developer.

Безпарольная аутентификация в SQL консоли

Пользователи SQL консоли создаются для каждой сессии и аутентифицируются с использованием сертификатов X.509, которые автоматически вращаются. Пользователь удаляется при завершении сессии. При создании списков доступа для аудитов перейдите на вкладку Настройки для сервиса в консоли и обратите внимание на доступ к SQL консоли, в дополнение к пользователям базы данных, которые существуют в базе данных. Если настроены пользовательские роли, доступ пользователя будет указан в роли, заканчивающейся именем пользователя.

Права доступа к базе данных

Настройте следующее в сервисах и базах данных с использованием SQL GRANT заявления.

РольОписание
По умолчаниюПолный административный доступ к сервисам
ПользовательскаяНастроить с использованием SQL GRANT заявления
  • Роли базы данных являются аддитивными. Это означает, что если пользователь состоит в двух ролях, у пользователя будет максимальный доступ, предоставленный двум ролям. Они не теряют доступ, добавляя роли.
  • Роли базы данных могут быть предоставлены другим ролям, в результате чего возникает иерархическая структура. Роли наследуют все права доступа ролей, членом которых они являются.
  • Роли базы данных уникальны для каждого сервиса и могут применяться к нескольким базам данных в рамках одного и того же сервиса.

Иллюстрация ниже показывает различные способы, которыми пользователю могут быть предоставлены права доступа.

Начальные настройки

Базы данных имеют учетную запись с именем default, которая автоматически добавляется и получает роль default_role при создании сервиса. Пользователь, который создает сервис, получает автоматически сгенерированный, случайный пароль, который присваивается учетной записи default, когда сервис создается. Пароль не отображается после первоначальной настройки, но может быть изменен любым пользователем с разрешениями Администратора Сервиса в консоли позже. Эта учетная запись или учетная запись с привилегиями Администратора Сервиса в консоли могут настраивать дополнительные пользователи базы данных и роли в любое время.

примечание

Чтобы изменить пароль, назначенный учетной записи default в консоли, перейдите в меню Сервисы слева, выберите сервис, перейдите на вкладку Настройки и нажмите кнопку Сбросить пароль.

Рекомендуем создать новую учетную запись пользователя, связанную с конкретным человеком, и предоставить пользователю роль default_role. Это позволит идентифицировать действия, выполняемые пользователями, по их идентификаторам пользователей, а учетная запись default оставить для экстренных действий.

Пользователи могут использовать генератор SHA256 или кодовую функцию, такую как hashlib в Python, чтобы преобразовать пароль длиной более 12 символов с соответствующей сложностью в строку SHA256, которую следует предоставить системному администратору в качестве пароля. Это гарантирует, что администратор не увидит и не обработает пароли в открытом виде.

Списки доступа к базе данных для пользователей SQL консоли

Следующий процесс можно использовать для генерации полного списка доступа через SQL консоль и базы данных в вашей организации.

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

  2. Свяжите этот список с пользователями консоли, имеющими доступ к SQL консоли.

    a. Перейдите в Консоль.

    b. Выберите соответствующий сервис.

    c. Выберите Настройки слева.

    d. Прокрутите вниз до раздела доступа к SQL консоли.

    e. Щелкните по ссылке для количества пользователей с доступом к базе данных There are # users with access to this service., чтобы увидеть список пользователей.