Пользователь с ролью Admin
default с правами администратора, который создается при создании сервиса. Пароль задается при создании сервиса, и его могут сбросить пользователи ClickHouse Cloud с ролью Admin.
Когда вы добавляете дополнительных SQL-пользователей для своего сервиса ClickHouse Cloud, им потребуются SQL-имя пользователя и пароль. Если вы хотите предоставить им административные привилегии, назначьте новым пользователям роль default_role. Например, добавим пользователя clickhouse_admin:
При использовании SQL Console ваши SQL-команды будут выполняться не от имени пользователя
default. Вместо этого они будут выполняться от имени пользователя sql-console:${cloud_login_email}, где cloud_login_email — это адрес электронной почты пользователя, который в данный момент выполняет запрос.Эти автоматически созданные пользователи SQL Console имеют роль default.Аутентификация без пароля
sql_console_admin с теми же разрешениями, что и у default_role, и sql_console_read_only с разрешениями только для чтения.
Пользователям с ролью Admin по умолчанию назначается роль sql_console_admin, поэтому для них ничего не меняется. Однако роль sql_console_read_only позволяет предоставить пользователям без роли Admin доступ только для чтения или полный доступ к любому экземпляру. Этот доступ должен настроить пользователь с ролью Admin. Роли можно изменить с помощью команд GRANT или REVOKE, чтобы точнее соответствовать требованиям конкретного экземпляра, и все внесённые в них изменения будут сохранены.
Тонкая настройка управления доступом
sql_console_*, следует создать роли базы данных для отдельных пользователей SQL Console по шаблону sql-console-role:<email>. Например:
sql_console_sa_role и sql_console_pm_role и назначать их конкретным пользователям. Например:
Проверьте права администратора
default и снова войдите под пользователем clickhouse_admin.
Все перечисленные ниже действия должны выполниться успешно:
Пользователи без прав администратора
Подготовка
Создание тестовой базы данных, таблицы и строк
1
Создайте тестовую базу данных
2
Создайте таблицу
3
Заполните таблицу тестовыми строками
4
Проверьте содержимое таблицы
Запрос
Ответ
5
Создайте column_user
Создайте обычного пользователя для демонстрации ограничения доступа к определённым столбцам:6
Создайте row_user
Создайте обычного пользователя для демонстрации ограничения доступа к строкам с определёнными значениями:Создание ролей
- будут созданы роли с разными привилегиями, например на уровне столбцов и строк
- ролям будут выданы привилегии
- пользователи будут назначены каждой роли
1
Создайте роль, чтобы ограничить пользователей этой роли просмотром только column1 в базе данных db1 и таблице table1:
2
Задайте привилегии, разрешающие просмотр column1
3
Добавьте пользователя column_user в роль column1_users
4
Создайте роль, чтобы ограничить пользователей этой роли просмотром только выбранных строк — в данном случае только строк, где column1 содержит A
5
Добавьте row_user в роль A_rows_users
6
Создайте политику, разрешающую просмотр только строк, где column1 имеет значение A
7
Задайте привилегии для базы данных и таблицы
8
Выдайте явные разрешения другим ролям, чтобы у них по-прежнему был доступ ко всем строкам
При привязке политики к таблице система применяет эту политику, и только указанные в ней пользователи и роли смогут выполнять операции с таблицей; всем остальным любые операции будут запрещены. Чтобы ограничивающая политика строк не применялась к другим пользователям, необходимо определить другую политику, которая предоставит другим пользователям и ролям обычный или иной тип доступа.
Проверка
Проверка привилегий роли для пользователя с ограничением доступа к столбцам
1
Войдите в клиент ClickHouse под пользователем clickhouse_admin
2
Проверьте доступ к базе данных, таблице и всем строкам под пользователем admin.
3
Войдите в клиент ClickHouse под пользователем column_user
4
Проверьте SELECT со всеми столбцами
Доступ запрещён, так как указаны все столбцы, а у пользователя есть доступ только к
id и column15
Проверьте запрос SELECT, указав только разрешённые столбцы:
Проверка привилегий роли с пользователем с ограничением по строкам
1
Войдите в клиент ClickHouse под пользователем row_user
2
Просмотрите доступные строки
Убедитесь, что возвращаются только две строки, показанные выше; строки со значением
B в column1 должны быть исключены.Изменение пользователей и ролей
role1 разрешает только SELECT по column1, а role2 разрешает SELECT по column1 и column2, то пользователь получит доступ к обоим столбцам.
1
Используя учетную запись администратора, создайте нового пользователя с ограничением доступа и по строкам, и по столбцам, а также с ролями по умолчанию
2
Удалите ранее выданные привилегии у роли A_rows_users
3
Разрешите роли A_row_users выполнять SELECT только по column1
4
Войдите в клиент ClickHouse под пользователем row_and_column_user
5
Проверка со всеми столбцами:
6
Проверка с ограниченным набором разрешенных столбцов:
Устранение неполадок
Просмотр привилегий и ролей пользователя
Просмотр ролей в ClickHouse
Просмотреть политики
Просмотрите, как задана политика и какие привилегии действуют сейчас
Пример команд для управления ролями, политиками и пользователями
- удалить привилегии
- удалить политики
- отвязать пользователей от ролей
- удалить пользователей и роли