> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Управление пользовательскими ролями

> На этой странице описано, как администраторы могут создавать, изменять и удалять пользовательские роли

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Бета</span>
            </a>;
  }
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Возможность в статусе бета</span>
        </a>;
};

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

Это руководство предназначено для пользователей с ролью Admin в ClickHouse Cloud.

Клиенты ClickHouse Cloud могут выбирать из предопределённых системных ролей или создавать пользовательские роли и назначать их пользователям. Дополнительные сведения о системных ролях и связанных с ними разрешениях см. в разделе [Роли и разрешения в консоли](/docs/ru/products/cloud/reference/security/console-roles). В этом руководстве описано управление пользовательскими ролями.

<div id="create-custom-role">
  ## Создание пользовательских ролей
</div>

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

<Steps>
  <Step title="Откройте настройки организации и выберите Users and roles" id="users-and-roles-1">
    На странице сервисов выберите имя своей организации. Во всплывающем меню выберите пункт `Users and roles`.

    <Image img="https://mintcdn.com/private-7c7dfe99/i3Gw7HRb0YxPr7dq/images/cloud/guides/control_plane/1_users_and_roles.webp?fit=max&auto=format&n=i3Gw7HRb0YxPr7dq&q=85&s=1f30c57780d4f06c07d82b82f9ac6b2d" size="lg" width="3418" height="1702" data-path="images/cloud/guides/control_plane/1_users_and_roles.webp" />
  </Step>

  <Step title={<>Выберите вкладку <code>Roles</code></>} id="roles-tab">
    Выберите вкладку `Roles` в верхней части экрана по центру.

    <Image img="https://mintcdn.com/private-7c7dfe99/i3Gw7HRb0YxPr7dq/images/cloud/guides/control_plane/manage_custom_roles/2_custom_role.webp?fit=max&auto=format&n=i3Gw7HRb0YxPr7dq&q=85&s=04ab7ddb52f064d89277e0371a47c4eb" size="lg" width="3414" height="984" data-path="images/cloud/guides/control_plane/manage_custom_roles/2_custom_role.webp" />
  </Step>

  <Step title={<>Выберите <code>Create new role</code> в правом верхнем углу</>} id="create-new-role">
    Нажмите кнопку `Create new role` в правом верхнем углу экрана.

    <Image img="https://mintcdn.com/private-7c7dfe99/i3Gw7HRb0YxPr7dq/images/cloud/guides/control_plane/manage_custom_roles/3_custom_role.webp?fit=max&auto=format&n=i3Gw7HRb0YxPr7dq&q=85&s=c7062b3429b1631fd8345c4e6c7a5c79" size="lg" width="3418" height="1706" data-path="images/cloud/guides/control_plane/manage_custom_roles/3_custom_role.webp" />
  </Step>

  <Step title="Назовите роль" id="name-the-role">
    Введите понятное имя роли. Это имя будет отображаться при назначении ролей пользователям и ключам API.

    <Image img="https://mintcdn.com/private-7c7dfe99/i3Gw7HRb0YxPr7dq/images/cloud/guides/control_plane/manage_custom_roles/4_custom_role.webp?fit=max&auto=format&n=i3Gw7HRb0YxPr7dq&q=85&s=6e71912663f214db351864c0769db547" size="md" width="1200" height="1704" data-path="images/cloud/guides/control_plane/manage_custom_roles/4_custom_role.webp" />
  </Step>

  <Step title={<>Нажмите <code>Allow</code> и выберите область действия разрешений</>} id="scope-permissions">
    Нажмите кнопку `Allow` и выберите разрешения уровня Organization, Service и/или Database. Описание всех разрешений см. в разделе [Роли и разрешения в консоли](/docs/ru/products/cloud/reference/security/console-roles).

    <Tip>
      Убедитесь, что у пользователей, которые будут входить в консоль, есть как минимум разрешение Organization > Access organization.
    </Tip>

    <Info>
      **Доступ к вкладке Data Sources**

      Для доступа к вкладке **Data Sources** роль в настоящее время должна иметь разрешение `Manage selected services`.
    </Info>

    <Image img="https://mintcdn.com/private-7c7dfe99/i3Gw7HRb0YxPr7dq/images/cloud/guides/control_plane/manage_custom_roles/5_custom_role.webp?fit=max&auto=format&n=i3Gw7HRb0YxPr7dq&q=85&s=1eaa9ca5e0e8cd7eac2b129ccf4a7b38" size="md" width="1192" height="1700" data-path="images/cloud/guides/control_plane/manage_custom_roles/5_custom_role.webp" />
  </Step>

  <Step title="Проверьте новую роль" id="review-role">
    Перед завершением проверьте разрешения, назначенные новой роли. Когда всё будет готово, нажмите `Create role`.

    <Image img="https://mintcdn.com/private-7c7dfe99/i3Gw7HRb0YxPr7dq/images/cloud/guides/control_plane/manage_custom_roles/6_custom_role.webp?fit=max&auto=format&n=i3Gw7HRb0YxPr7dq&q=85&s=30e69ffa817df6ece4b32139634eb726" size="md" width="1190" height="1696" data-path="images/cloud/guides/control_plane/manage_custom_roles/6_custom_role.webp" />
  </Step>
</Steps>

<div id="manage-database-roles">
  ## Управление ролями базы данных (бета)
</div>

<BetaBadge />

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

<Note>
  Эта возможность находится на стадии бета-тестирования и доступна для сервисов с ClickHouse версии 26.4 и выше.
</Note>

Когда вы добавляете разрешения на доступ к данным в пользовательскую роль, ClickHouse Cloud создает соответствующую роль в каждом выбранном сервисе с префиксом `cloud:`. Например, пользовательская роль с именем `readonly` отображается в базе данных как `cloud:readonly`. Участники пользовательской роли получают эти разрешения базы данных при подключении к сервису через беспарольную аутентификацию в SQL Console.

<Info>
  Роли, вручную назначенные в базе данных с использованием [соглашения об именовании `sql-console-role:<email>`](/docs/ru/products/cloud/guides/security/cloud-access-management/manage-database-users#sql-console-users-and-roles), имеют приоритет над ролями, назначенными через консоль.
</Info>

<Steps>
  <Step title="Добавьте разрешения на доступ к данным в роль" id="add-data-permissions">
    [Создайте пользовательскую роль](#create-custom-role) или отредактируйте существующую. В диалоговом окне роли нажмите кнопку `Allow permissions` и выберите `Data`.
  </Step>

  <Step title="Выберите сервис" id="select-data-permissions-service">
    Выберите сервис, к которому применяются разрешения. Чтобы применить разрешения к нескольким сервисам, добавьте другие сервисы.
  </Step>

  <Step title="Выберите уровень доступа" id="choose-data-access-level">
    Выберите уровень доступа `Read-only`, `Admin` или `Custom`. При выборе `Custom` задайте конкретные разрешения на доступ к данным с помощью команд ClickHouse [`GRANT`](/docs/ru/reference/statements/grant).

    <Image img="https://mintcdn.com/private-7c7dfe99/sLklKFwx4XVgDBp1/images/cloud/guides/control_plane/manage_custom_roles/create_role_data_permissions.webp?fit=max&auto=format&n=sLklKFwx4XVgDBp1&q=85&s=15a82bb2e74edb0567ba4410f8685d22" alt="Диалог создания новой роли с разрешениями на доступ к данным, заданными пользовательскими командами GRANT" size="md" width="1174" height="1230" data-path="images/cloud/guides/control_plane/manage_custom_roles/create_role_data_permissions.webp" />
  </Step>

  <Step title="Создайте роль" id="create-role-with-data-permissions">
    Нажмите `Create role`. Роли базы данных будут созданы в выбранных сервисах.
  </Step>
</Steps>

<div id="verify-database-roles">
  ### Проверка ролей базы данных
</div>

Роли, управляемые через консоль, создаются в базе данных с префиксом `cloud:` и типом хранения `cloud`. Чтобы получить их список, выполните запрос к таблице `system.roles` в сервисе:

```sql theme={null}
SELECT * FROM system.roles;
```

```response theme={null}
┌─name───────────┬─id───────────────────────────────────┬─storage─┐
│ cloud:readonly │ 9a4910f4-abcf-4904-466a-717c8c75ac42 │ cloud   │
└────────────────┴──────────────────────────────────────┴─────────┘
```

<div id="update-custom-role">
  ## Обновление пользовательских ролей
</div>

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

<Tip>
  Разрешения пользователей суммируются. Если у пользователя есть разрешение на выполнение операции в рамках нескольких ролей, он может не сразу потерять доступ, если разрешение удалено только из одной роли.
</Tip>

1. Откройте настройки организации и выберите `Users and roles`
2. Выберите вкладку `Roles`
3. Нажмите на значок с тремя точками рядом с ролью, которую нужно изменить
4. Выберите `Edit`
5. Измените разрешения
6. Выберите `Edit role`

<div id="delete-custom-role">
  ## Удаление пользовательских ролей
</div>

Пользовательские роли можно удалить в любое время.

<Warning>
  В организации должен быть как минимум один пользователь с административными разрешениями. Если при удалении роли административные разрешения будут отозваны у последнего такого пользователя, удалить эту роль не получится. Чтобы решить эту проблему, перед удалением пользовательской роли назначьте как минимум одному пользователю системную роль Admin.
</Warning>

1. Откройте настройки организации и выберите `Users and roles`
2. Выберите вкладку `Roles`
3. Нажмите на три точки рядом с ролью, которую хотите удалить
4. Проверьте, какие пользователи и ключи API потеряют доступ после удаления роли. При необходимости измените назначения.
5. Выберите `Delete role`, чтобы завершить процесс
