> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

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

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

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

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

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

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

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

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/1_users_and_roles.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=f8618d7065f6c637de1d351ca5e3acf4" 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-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/2_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=210e6c180e9c3cfdc37e5b85dd5932db" 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-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/3_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=bf92b64a37677b577a1bd50cc253c2f4" 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-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/4_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=51d191d1d2cc83460937c82af81fd54c" 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. Описание всех разрешений см. в разделе [Роли и разрешения в консоли](/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-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/5_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=5e954eb67730729034287f693b45b692" 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-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/6_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=e21600cc306696d1fee859460030e980" size="md" width="1190" height="1696" data-path="images/cloud/guides/control_plane/manage_custom_roles/6_custom_role.webp" />
  </Step>
</Steps>

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

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

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

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

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

<h3 id="manage-database-roles-prerequisites">
  Предварительные требования
</h3>

Пользовательские роли базы данных в сервисе зависят от [JWT-аутентификации](/ru/products/cloud/guides/security/cloud-access-management/jwt-authentication-setup) и не применяются, пока она отключена. Прежде чем добавлять политику `Data` в роль, перейдите к сервису, откройте `Settings` и найдите карточку `JWT authentication` в разделе `Security`. Убедитесь, что переключатель `SQL Console` включен.

<Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/N4hygmh4Hnw5ZMnE/images/cloud/security/jwt/jwt-sql-console-toggle.png?fit=max&auto=format&n=N4hygmh4Hnw5ZMnE&q=85&s=7a9ca31b052cca3154c701338b5bf001" alt="Карточка JWT-аутентификации с включенным переключателем SQL Console" size="lg" force width="1666" height="288" data-path="images/cloud/security/jwt/jwt-sql-console-toggle.png" />

<Steps>
  <Step title="Откройте диалоговое окно роли" id="open-role-dialog">
    [Создайте пользовательскую роль](#create-custom-role) или отредактируйте существующую.
  </Step>

  <Step title="Добавьте политику организации" id="add-organization-policy">
    В диалоговом окне роли нажмите `Allow`, выберите `Organization` и включите разрешение `Access organization`.
  </Step>

  <Step title="Добавьте политику сервиса" id="add-service-policy">
    Нажмите `Allow permissions`, выберите `Service`, укажите сервисы, к которым будет применяться политика `Data`, и включите разрешение `View selected services`.

    Участникам роли нужны оба разрешения, чтобы войти в консоль и открыть сервис в SQL console, где применяется политика `Data`.
  </Step>

  <Step title="Добавьте политику `Data`" id="add-data-permissions">
    Нажмите `Allow permissions` и выберите `Data`.
  </Step>

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

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

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/create_role_data_permissions.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=fbd3d004de3b1d4175d8278070c49934" 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`. Роли базы данных будут созданы в выбранных сервисах. Распространение ролей на сервис может занять до 10 минут, но пользователи, которым назначена эта роль, получают ее разрешения сразу при выполнении запросов к сервису.
  </Step>
</Steps>

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

Роли, управляемые через консоль, создаются в базе данных с префиксом `cloud:` и типом хранения `cloud` и могут появиться в течение 10 минут после создания. Чтобы получить их список, выполните запрос к таблице `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`, чтобы завершить процесс
