DOCAPI-6425: EN review. RU Translation. User settings. (#5713)

This commit is contained in:
BayoNet 2019-07-05 01:03:28 +03:00 committed by Ivan Blinkov
parent 74d17789d0
commit 9655b1c9d9
7 changed files with 153 additions and 18 deletions

View File

@ -1,6 +1,6 @@
# User settings
The `users` section of the `user.xml` configuration file contains settings for users.
The `users` section of the `user.xml` configuration file contains user settings.
Structure of the `users` section:
@ -35,15 +35,15 @@ Structure of the `users` section:
Password could be specified in plaintext or in SHA256 (hex format).
- To specify password in plaintext (**not recommended**), place it in a `password` element.
- To assign a password in plaintext (**not recommended**), place it in a `password` element.
For example, `<password>qwerty</password>`. Password can be empty.
For example, `<password>qwerty</password>`. The password can be left blank.
- To specify SHA256 hash of a password, place it in a `password_sha256_hex` element.
- To assign a password using its SHA256 hash, place it in a `password_sha256_hex` element.
For example, `<password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>`.
Example of how to generate password from shell:
Example of how to generate a password from shell:
```
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
@ -54,11 +54,11 @@ Password could be specified in plaintext or in SHA256 (hex format).
### user_name/networks
List of networks which the user can connect to ClickHouse server from.
List of networks from which the user can connect to the ClickHouse server.
Each element of list has one of the following forms:
Each element of the list can have one of the following forms:
- `<ip>` — IP-address or a network mask.
- `<ip>` — IP address or network mask.
Examples: `213.180.204.3`, `10.0.0.1/8`, `10.0.0.1/255.255.255.0`, `2a02:6b8::3`, `2a02:6b8::3/64`, `2a02:6b8::3/ffff:ffff:ffff:ffff::`.
@ -66,15 +66,15 @@ Each element of list has one of the following forms:
Example: `server01.yandex.ru`.
To check access, DNS query is performed, and all returned IP-addresses are compared to peer address.
To check access, a DNS query is performed, and all returned IP addresses are compared to the peer address.
- `<host_regexp>` — Regular expression for hostnames.
Example, `^server\d\d-\d\d-\d\.yandex\.ru$`
To check access, [DNS PTR query](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) is performed for peer address and then regexp is applied. Then, for result of PTR query, another DNS query is performed and all received addresses compared to peer address. Strongly recommended that regexp is ends with $
To check access, a [DNS PTR query](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) is performed for the peer address and then the specified regexp is applied. Then, another DNS query is performed for the results of the PTR query and all the received addresses are compared to the peer address. We strongly recommend that regexp ends with $.
All results of DNS requests are cached till server restart.
All results of DNS requests are cached until the server restarts.
**Examples**
@ -85,7 +85,7 @@ To open access for user from any network, specify:
```
!!! warning "Warning"
It's insecure to open access from any network, unless you have a firewall properly configured or server is not directly connected to Internet.
It's insecure to open access from any network unless you have a firewall properly configured or the server is not directly connected to Internet.
To open access only from localhost, specify:
@ -97,22 +97,22 @@ To open access only from localhost, specify:
### user_name/profile
You can assign a settings profile for the user. Settings profiles are configured in a separate section of the `users.xml` file. For more information see the [Profiles of Settings](settings_profiles.md).
You can assign a settings profile for the user. Settings profiles are configured in a separate section of the `users.xml` file. For more information, see [Profiles of Settings](settings_profiles.md).
### user_name/quota
Quotas allow you to limit resource usage over a period of time, or track the use of resources. Quotas are configured in the `quotas`
Quotas allow you to track or limit resource usage over a period of time. Quotas are configured in the `quotas`
section of the `users.xml` configuration file.
You can assign a quotas set for the user. For the detailed description of quotas configuration see the [Quotas](../quotas.md#quotas) section.
You can assign a quotas set for the user. For a detailed description of quotas configuration, see [Quotas](../quotas.md#quotas).
### user_name/databases
In this section you can you can limit rows that are returned by ClickHouse for `SELECT` queries of current user, thus implementing basic row level security.
In this section, you can you can limit rows that are returned by ClickHouse for `SELECT` queries made by the current user, thus implementing basic row-level security.
**Example**
The following configuration sets that the user `user1` can see only the rows of `table1` as a result of `SELECT` query where the value of field `id` equals to 1000.
The following configuration forces that user `user1` can only see the rows of `table1` as the result of `SELECT` queries, where the value of the `id` field is 1000.
```
<user1>
@ -126,4 +126,6 @@ The following configuration sets that the user `user1` can see only the rows of
</user1>
```
The `filter` can be any expression resulting with the [UInt8](../../data_types/int_uint.md)-typed value. It usually contains comparisons and logical operators. Rows from `database_name.table1` where filter results to 0 are not returned for this user. The filtering is incompatible with `PREWHERE` operations and disables `WHERE→PREWHERE` optimization.
The `filter` can be any expression resulting in a [UInt8](../../data_types/int_uint.md)-type value. It usually contains comparisons and logical operators. Rows from `database_name.table1` where filter results to 0 are not returned for this user. The filtering is incompatible with `PREWHERE` operations and disables `WHERE→PREWHERE` optimization.
[Original article](https://clickhouse.yandex/docs/en/operations/settings/settings_users/) <!--hide-->

View File

@ -0,0 +1 @@
../../../en/operations/settings/settings_users.md

View File

@ -0,0 +1,128 @@
# Настройки пользователей
Раздел `users` конфигурационного файла `user.xml` содержит настройки для пользователей.
Структура раздела `users`:
```
<users>
<!-- If user name was not specified, 'default' user is used. -->
<user_name>
<password></password>
<!-- Or -->
<password_sha256_hex></password_sha256_hex>
<networks incl="networks" replace="replace">
</networks>
<profile>profile_name</profile>
<quota>default</quota>
<databases>
<database_name>
<table_name>
<filter>expression</filter>
<table_name>
</database_name>
</databases>
</user_name>
<!-- Other users settings -->
</users>
```
### user_name/password
Пароль можно указать в текстовом виде или в виде SHA256 (шестнадцатеричный формат).
- Чтобы назначить пароль в текстовом виде (**не рекомендуем**), поместите его в элемент `password`.
Например, `<password>qwerty</password>`. Пароль можно оставить пустым.
- Чтобы назначить пароль в виде SHA256, поместите хэш в элемент `password_sha256_hex`.
Например, `<password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>`.
Пример создания пароля в командной строке:
```
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
```
Первая строка результата — пароль. Вторая строка — соответствующий ему хэш SHA256.
### user_name/networks
Список сетей, из которых пользователь может подключиться к серверу ClickHouse.
Каждый элемент списка имеет одну из следующих форм:
- `<ip>` — IP-адрес или маска подсети.
Примеры: `213.180.204.3`, `10.0.0.1/8`, `10.0.0.1/255.255.255.0`, `2a02:6b8::3`, `2a02:6b8::3/64`, `2a02:6b8::3/ffff:ffff:ffff:ffff::`.
- `<host>` — Имя хоста.
Пример: `server01.yandex.ru`.
Для проверки доступа выполняется DNS-запрос, и все возвращенные IP-адреса сравниваются с адресом клиента.
- `<host_regexp>` — Регулярное выражение для имен хостов.
Пример, `^server\d\d-\d\d-\d\.yandex\.ru$`
Для проверки доступа выполняется [DNS запрос PTR](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) для адреса клиента, а затем применяется заданное регулярное выражение. Затем, для результатов запроса PTR выполняется другой DNS-запрос и все полученные адреса сравниваются с адресом клиента. Рекомендуем завершать регулярное выражение символом $.
Все результаты DNS-запросов кэшируются до перезапуска сервера.
**Примеры**
Чтобы открыть доступ пользователю из любой сети, укажите:
```
<ip>::/0</ip>
```
!!! warning "Внимание"
Открывать доступ из любой сети небезопасно, если у вас нет правильно настроенного брандмауэра или сервер не отключен от интернета.
Чтобы открыть только локальный доступ, укажите:
```
<ip>::1</ip>
<ip>127.0.0.1</ip>
```
### user_name/profile
Пользователю можно назначить профиль настроек. Профили настроек конфигурируются в отдельной секции файла `users.xml`. Подробнее читайте в разделе [Профили настроек](settings_profiles.md).
### user_name/quota
Квотирование позволяет отслеживать или ограничивать использование ресурсов в течение определённого периода времени. Квоты настраиваются в разделе `quotas` конфигурационного файла `users.xml`.
Пользователю можно назначить квоты. Подробное описание настройки квот смотрите в разделе [Квоты](../quotas.md#quotas).
### user_name/databases
В этом разделе вы можете ограничить выдачу ClickHouse запросами `SELECT` для конкретного пользователя, таким образом реализуя базовую защиту на уровне строк.
**Пример**
Следующая конфигурация задаёт, что пользователь `user1` в результате запросов `SELECT` может получать только те строки `table1`, в которых значение поля `id` равно 1000.
```
<user1>
<databases>
<database_name>
<table1>
<filter>id = 1000</filter>
</table1>
</database_name>
</databases>
</user1>
```
Элемент `filter` содержать любое выражение, возвращающее значение типа [UInt8](../../data_types/int_uint.md). Обычно он содержит сравнения и логические операторы. Строки `database_name.table1`, для которых фильтр возвращает 0 не выдаются пользователю. Фильтрация несовместима с операциями `PREWHERE` и отключает оптимизацию `WHERE→PREWHERE`.
[Оригинальная статья](https://clickhouse.yandex/docs/ru/operations/settings/settings_users/) <!--hide-->

View File

@ -187,6 +187,7 @@ nav:
- 'Restrictions on Query Complexity': 'operations/settings/query_complexity.md'
- 'Settings': 'operations/settings/settings.md'
- 'Settings Profiles': 'operations/settings/settings_profiles.md'
- 'User Settings': 'operations/settings/settings_users.md'
- 'Constraints on Settings': 'operations/settings/constraints_on_settings.md'
- 'Utilities':
- 'Overview': 'operations/utils/index.md'

View File

@ -189,6 +189,7 @@ nav:
- 'Настройки': 'operations/settings/settings.md'
- 'Ограничения на изменение настроек': 'operations/settings/constraints_on_settings.md'
- 'Профили настроек': 'operations/settings/settings_profiles.md'
- 'Настройки пользователей': 'operations/settings/settings_users.md'
- 'Утилиты':
- 'Введение': 'operations/utils/index.md'
- 'clickhouse-copier': 'operations/utils/clickhouse-copier.md'

View File

@ -186,6 +186,7 @@ nav:
- 'Restrictions on query complexity': 'operations/settings/query_complexity.md'
- 'Settings': 'operations/settings/settings.md'
- 'Settings profiles': 'operations/settings/settings_profiles.md'
- 'User Settings': 'operations/settings/settings_users.md'
- 'Constraints on Settings': 'operations/settings/constraints_on_settings.md'
- 'Utilities':
- 'Overview': 'operations/utils/index.md'

View File

@ -0,0 +1 @@
../../../en/operations/settings/settings_users.md