> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Набор настроек, сгруппированных под одним именем.

# Профили настроек

Профиль настроек — это набор настроек, объединённых под одним именем.

<Note>
  ClickHouse также поддерживает [управление через SQL](/ru/concepts/features/security/access-rights#access-control-usage) для профилей настроек. Мы рекомендуем использовать именно его.
</Note>

Имя профиля может быть любым. Один и тот же профиль можно назначить разным пользователям. Самое важное, что можно задать в профиле настроек, — это `readonly=1`, что обеспечивает доступ только для чтения.

Профили настроек могут наследоваться друг от друга. Чтобы использовать наследование, укажите одну или несколько настроек `profile` перед остальными настройками, перечисленными в профиле. Если одна и та же настройка определена в разных профилях, используется значение из профиля, указанного последним.

Чтобы применить все настройки профиля, задайте настройку `profile`.

Пример:

Установите профиль `web`.

```sql theme={null}
SET profile = 'web'
```

Профили настроек задаются в пользовательском файле конфигурации. Обычно это `users.xml`.

Пример:

```xml theme={null}
<!-- Профили настроек -->
<profiles>
    <!-- Настройки по умолчанию -->
    <default>
        <!-- Максимальное количество потоков при выполнении одного запроса. -->
        <max_threads>8</max_threads>
    </default>

    <!-- Настройки фоновых операций -->
    <background>
        <!-- Переопределение максимального количества потоков для фоновых операций -->
        <max_threads>12</max_threads>
    </background>

    <!-- Настройки для запросов из пользовательского интерфейса -->
    <web>
        <max_rows_to_read>1000000000</max_rows_to_read>
        <max_bytes_to_read>100000000000</max_bytes_to_read>

        <max_rows_to_group_by>1000000</max_rows_to_group_by>
        <group_by_overflow_mode>any</group_by_overflow_mode>

        <max_rows_to_sort>1000000</max_rows_to_sort>
        <max_bytes_to_sort>1000000000</max_bytes_to_sort>

        <max_result_rows>100000</max_result_rows>
        <max_result_bytes>100000000</max_result_bytes>
        <result_overflow_mode>break</result_overflow_mode>

        <max_execution_time>600</max_execution_time>
        <min_execution_speed>1000000</min_execution_speed>
        <timeout_before_checking_execution_speed>15</timeout_before_checking_execution_speed>

        <max_columns_to_read>25</max_columns_to_read>
        <max_temporary_columns>100</max_temporary_columns>
        <max_temporary_non_const_columns>50</max_temporary_non_const_columns>

        <max_subquery_depth>2</max_subquery_depth>
        <max_pipeline_depth>25</max_pipeline_depth>
        <max_ast_depth>50</max_ast_depth>
        <max_ast_elements>100</max_ast_elements>

        <max_sessions_for_user>4</max_sessions_for_user>

        <readonly>1</readonly>
    </web>
</profiles>
```

В примере указаны два профиля: `default` и `web`.

Профиль `default` имеет особое назначение: он должен всегда присутствовать и применяется при запуске сервера. Иными словами, профиль `default` содержит настройки по умолчанию. Имя профиля по умолчанию можно изменить с помощью настройки сервера `default_profile`.

Профиль `background` также имеет особое назначение: он может использоваться для переопределения настроек фоновых операций. Этот параметр необязателен, а его имя можно изменить с помощью настройки сервера `background_profile`.

Профиль `web` — обычный профиль, который можно задать с помощью запроса `SET` или параметра URL в HTTP-запросе.
