Skip to content

Commit

Permalink
Merge 72f06ed into a51b52c
Browse files Browse the repository at this point in the history
  • Loading branch information
azevaykin authored Dec 19, 2024
2 parents a51b52c + 72f06ed commit b5801dd
Show file tree
Hide file tree
Showing 29 changed files with 537 additions and 103 deletions.
Empty file.
14 changes: 14 additions & 0 deletions ydb/docs/en/core/concepts/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,20 @@ A **column family** or **column group** is a feature that allows storing a subse

**Time to live** or **TTL** is a mechanism for automatically removing old rows from a table asynchronously in the background. It is explained in a separate article [{#T}](ttl.md).

### View {#view}

A **view** logically represents a table formed by a given query. The view itself contains no data. The content of a view is generated every time you SELECT from it. Thus, any changes in the underlying tables are reflected immediately in the view.

There are user-defined and system-defined views.

#### User-defined view {#user-view}

A **user-defined view** is created by a user using [{#T}](../yql/reference/syntax/create-view.md) statement. It is explained in a separate article [{#T}](../concepts/datamodel/view.md).

#### System view {#system-view}

A **system view** is for monitoring the DB status. These views are accessible from the root of the database tree and use the `.sys` system path prefix. It is explained in a separate article [{#T}](../dev/system-views.md).

### Topic {#topic}

A **topic** is a persistent queue that can be used for reliable asynchronous communications between various systems via message passing. {{ ydb-short-name }} provides the infrastructure to ensure "exactly once" semantics in such communications, which ensures that there are both no lost messages and no accidental duplicates.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ The following authentication modes are supported:
* [Authentication through a third-party IAM provider](#iam), for example, [Yandex Identity and Access Management]{% if lang == "en" %}(https://cloud.yandex.com/en/docs/iam/){% endif %}{% if lang == "ru" %}(https://cloud.yandex.ru/docs/iam/){% endif %}.
* Authentication by [username and password](#static-credentials).

## Anonymous authentication

Anonymous authentication allows you to connect to YDB without specifying a username and password. This type of access should be used only for informational purposes for internal local databases that do not have access over the network.

To enable anonymous authentication, use `false` in the `enforce_user_token_requirement` key of the cluster's [configuration file](../reference/configuration/index.md#auth).

## Authentication through a third-party IAM provider {#iam}

* **Anonymous**: Empty token passed in a request.
Expand Down Expand Up @@ -35,23 +41,20 @@ The token to specify in request parameters can be obtained in the IAM system tha

When using modes in which the {{ ydb-short-name }} client accesses the IAM system, the IAM URL that provides an API for issuing tokens can be set additionally. By default, existing SDKs and CLIs attempt to access the {{ yandex-cloud }} IAM API hosted at `iam.api.cloud.yandex.net:443`.

{% include [overlay/auth_choose.md](_includes/connect_overlay/auth_choose.md) %}

## Authenticating by username and password {#static-credentials}

Authentication by username and password includes the following steps:
This type of access implies that each database user has a username and password.
You can only use lower case Latin letters and digits in usernames. No restrictions apply to passwords (empty passwords can be used).

1. The client accesses the database and presents their username and password to the {{ ydb-short-name }} authentication service.
The username and hashed password are stored in the table inside the authentication component. The password is hashed by the [Argon2]{% if lang == "en" %}(https://en.wikipedia.org/wiki/Argon2){% endif %}{% if lang == "ru" %}(https://ru.wikipedia.org/wiki/Argon2){% endif %} method. In authentication mode, only the system administrator can use a username/password pair to access the table.

You can only use lower case Latin letters and digits in usernames. No restrictions apply to passwords (empty passwords can be used).
A token is returned in response to the username and password. Tokens have a default lifetime of 12 hours. To rotate tokens, the client, for example, the SDK, independently accesses the authentication service. Tokens accelerate authentication and strengthen security.

Authentication by username and password includes the following steps:

1. The client accesses the database and presents their username and password to the {{ ydb-short-name }} authentication service.
1. The authentication service passes authentication data to the {{ ydb-short-name }} authentication component.
1. The component validates authentication data. If the data matches, it generates a token and returns it to the authentication service.

Tokens accelerate authentication and strengthen security. Tokens have a default lifetime of 12 hours. YDB SDK rotates tokens by accessing the authentication service.

The username and hashed password are stored in the table inside the authentication component. The password is hashed by the [Argon2]{% if lang == "en" %}(https://en.wikipedia.org/wiki/Argon2){% endif %}{% if lang == "ru" %}(https://ru.wikipedia.org/wiki/Argon2){% endif %} method. In authentication mode, only the system administrator can use a username/password pair to access the table.

1. The authentication system returns the token to the client.
1. The client accesses the database, presenting their token as authentication data.

Expand Down
6 changes: 5 additions & 1 deletion ydb/docs/redirects.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -184,11 +184,15 @@ common:

# Security-related redirects
- from: /cluster/access.md
to: /security/acess-management.md
to: /security/authorization.md
- from: /cluster/audit-log.md
to: /security/audit-log.md
- from: /cluster/short-access-control-notation.md
to: /security/short-access-control-notation.md
- from: /concepts/auth.md
to: /security/authentication.md
- from: /security/access-management.md
to: /security/authorization.md

# Contributors-related redirects
- from: /development/build-ya.md
Expand Down
2 changes: 1 addition & 1 deletion ydb/docs/ru/core/changelog-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -288,4 +288,4 @@
* Добавлена поддержка сжатия при экспорте данных в S3.
* Добавлен audit log для DDL statements.
* Поддержана аутентификация со статическими учетными данными.
* Добавлены системные таблицы для диагностики производительности запросов.
* Добавлены системные представления для диагностики производительности запросов.
Empty file.
2 changes: 1 addition & 1 deletion ydb/docs/ru/core/concepts/_includes/scan_query.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

{% note info %}

Через интерфейс *Scan Queries* можно выполнять запросы к [системным таблицам](../../dev/system-views.md).
Через интерфейс *Scan Queries* можно выполнять запросы к [системным представлениям](../../dev/system-views.md).

{% endnote %}

Expand Down
16 changes: 15 additions & 1 deletion ydb/docs/ru/core/concepts/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,20 @@

**Время жизни**, **time to live** или **TTL** — это механизм для автоматического удаления старых строк из таблицы асинхронно в фоновом режиме. Он описан в отдельной статье [{#T}](ttl.md).

### Представление {#view}

**Представление** или **view** — это способ сохранить запрос и обращаться к его результатам как к настоящей таблице. Само представление не хранит данных, кроме текста запроса. Запрос, хранящийся в представлении, выполняется при каждом SELECT из него, генерируя возвращаемый результат. Любые изменения в таблицах, на которые ссылается представление, немедленно отражаются в результатах чтения из него.

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

#### Пользовательские представления {#user-view}

**Пользовательские представления** создаются пользователем с помощью команды [{#T}](../yql/reference/syntax/create-view.md). Они описаны более подробно в [{#T}](../concepts/datamodel/view.md).

#### Системные представления {#system-view}

**Системные представления** предназначены для отслеживания состояния базы данных. Эти таблицы доступны из корня дерева базы данных и используют системный префикс пути `.sys`. Они описаны более подробно в [{#T}](../dev/system-views.md).

### Топик {#topic}

**Очередь сообщений** используется для надёжной асинхронной связи между различными системами посредством передачи сообщений. {{ ydb-short-name }} предоставляет инфраструктуру, обеспечивающую семантику "exactly once" (ровно один раз) в таких коммуникациях. С её использованием можно добиться гарантии отсутствия потерянных сообщений и случайных дубликатов.
Expand Down Expand Up @@ -596,4 +610,4 @@ MiniKQL — это язык низкого уровня. Конечные пол

### KiKiMR {#kikimr}

**KiKiMR** — это устаревшее название {{ ydb-short-name }}, использовавшееся до того, как он стал [продуктом с открытым исходным кодом](https://github.com/ydb-platform/ydb) (open source). Оно всё ещё может встречаться в исходном коде, старых статьях и видео и т.д.
**KiKiMR** — это устаревшее название {{ ydb-short-name }}, использовавшееся до того, как он стал [продуктом с открытым исходным кодом](https://github.com/ydb-platform/ydb) (open source). Оно всё ещё может встречаться в исходном коде, старых статьях и видео и т.д.
Loading

0 comments on commit b5801dd

Please sign in to comment.