Контроль доступа в 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., чтобы увидеть список пользователей.