Контроль доступа в ClickHouse Cloud
ClickHouse Cloud контролирует доступ к самой консоли и функциям, доступным в ней. Пользователь консоли является основой этого доступа, с всеми разрешениями, ролями и контролем доступа, назначенными и управляемыми через этих пользователей. Когда права доступа на уровне базы данных связаны с пользователями консоли, они управляют их доступом к данным при запросах через SQL консоль.
Пользователи консоли и роли
Настройте назначения ролей Организации и Сервиса на странице Консоли > Пользователи и роли. Настройте назначения ролей SQL Консоли на странице настроек для каждого сервиса.
Пользователям должна быть назначена роль на уровне организации и опционально могут быть назначены сервисные роли для одного или нескольких сервисов. Сервисные роли могут быть опционально настроены для пользователей для доступа к SQL консоли на странице настроек сервиса.
- Пользователи, назначенные роли Администратора Организации, по умолчанию получают роль Администратора Сервиса.
- Пользователи, добавленные в организацию через интеграцию SAML, автоматически получают роль Участника с минимальными привилегиями и без доступа к каким-либо сервисам, пока не будет настроено.
- Администратору Сервиса по умолчанию назначается роль администратора SQL консоли. Разрешения SQL консоли могут быть удалены на странице настроек сервиса.
Контекст | Роль | Описание |
---|---|---|
Организация | Администратор | Выполнять все административные действия для организации и контролировать все настройки. По умолчанию назначается первому пользователю в организации. |
Организация | Разработчик | Доступ к просмотру всего, кроме Сервисов, возможность генерировать ключи API с правами только на чтение. |
Организация | Биллинг | Просмотр использования и счетов, управление методами оплаты. |
Организация | Участник | Вход только с возможностью управлять настройками личного профиля. По умолчанию назначается пользователям SAML SSO. |
Сервис | Администратор Сервиса | Управление настройками сервиса. |
Сервис | Чтение только | Просмотр сервисов и настроек. |
SQL консоль | Администратор SQL консоли | Административный доступ к базам данных в пределах сервиса, эквивалентный роли по умолчанию для базы данных. |
SQL консоль | Чтение только SQL консоли | Доступ только на чтение к базам данных в пределах сервиса |
SQL консоль | Пользовательская | Настройка с помощью SQL GRANT оператора; назначьте роль пользователю SQL консоли, назвав роль по имени пользователя |
Чтобы создать пользовательскую роль для пользователя SQL консоли и предоставить ему общую роль, выполните следующие команды. Адрес электронной почты должен соответствовать адресу электронной почты пользователя в консоли.
Создать database_developer
и предоставить разрешения
Создайте роль database_developer
и предоставьте разрешения SHOW
, CREATE
, ALTER
и DELETE
.
Создать роль пользователя SQL консоли
Создайте роль для пользователя SQL консоли my.user@domain.com и назначьте ей роль 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 консоли и базам данных в вашей организации.
Получить список всех предоставлений баз данных
Запустите следующие запросы, чтобы получить список всех предоставлений в базе данных.
Связать список предоставлений с пользователями Консоли, имеющими доступ к SQL консоли
Свяжите этот список с пользователями Консоли, которые имеют доступ к SQL консоли.
a. Перейдите в Консоль.
b. Выберите соответствующий сервис.
c. Выберите Настройки слева.
d. Прокрутите до раздела доступа к SQL консоли.
e. Нажмите на ссылку для количества пользователей с доступом к базе данных There are # users with access to this service.
, чтобы увидеть список пользователей.