Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add {cluster,database} administrator roles description #13907

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

ijon
Copy link
Collaborator

@ijon ijon commented Jan 27, 2025

Add description for cluster and database administrator roles and instructions on how to setup those.

RU version only.

KIKIMR-21849

Stacked on:

Changelog category

  • Documentation

@github-actions github-actions bot added the documentation Improvements or additions to documentation label Jan 27, 2025

This comment was marked as outdated.

@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 28, 2025
@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 28, 2025
@ijon ijon force-pushed the docs-admin-roles branch from 25dd5ac to e90d872 Compare January 28, 2025 13:23

This comment was marked as outdated.

@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 28, 2025
@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 28, 2025
@ijon ijon force-pushed the docs-admin-roles branch from e90d872 to 8af5977 Compare January 28, 2025 14:34
@github-actions github-actions bot added documentation Improvements or additions to documentation and removed documentation Improvements or additions to documentation labels Jan 28, 2025
Copy link

✅ Documentation build

Revision built successfully
Revision preview link

@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 28, 2025
@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 28, 2025
@ijon ijon force-pushed the docs-admin-roles branch from 8af5977 to 3ad9f40 Compare January 29, 2025 10:25
Copy link

✅ Documentation build

Revision built successfully
Revision preview link

@github-actions github-actions bot added documentation Improvements or additions to documentation and removed documentation Improvements or additions to documentation labels Jan 29, 2025
@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 29, 2025
@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 29, 2025
@ijon ijon force-pushed the docs-admin-roles branch from 3ad9f40 to da552ad Compare January 30, 2025 14:45
Copy link

✅ Documentation build

Revision built successfully
Revision preview link

@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 31, 2025
@ydb-platform ydb-platform deleted a comment from github-actions bot Jan 31, 2025

{% note info %}

Рассматривается управление кластером группой администраторов. Оставить управление кластера единственному [пользователю](../concepts/glossary.md#access-user)-администратору (или суперпользователю) может быть ненадёжно и небезопасно.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хочу выделить слово "группой", оно будет противопоставляться "пользователю".

Suggested change
Рассматривается управление кластером группой администраторов. Оставить управление кластера единственному [пользователю](../concepts/glossary.md#access-user)-администратору (или суперпользователю) может быть ненадёжно и небезопасно.
Рассматривается управление кластером [группой](../concepts/glossary.md#access-group) администраторов. Оставить управление кластера единственному [пользователю](../concepts/glossary.md#access-user) администратору (или суперпользователю) может быть ненадёжно и небезопасно.


Создание и настройка администраторов кластера по шагам:

1. Создать суперпользователя, группу администраторов кластера и наделить их административными правами.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По примеру не совсем понятно, почему пользователи будут "наделены административными правами". Я бы продублировал, что они включены в "*_allowed_sids"


После выполнения данной инструкции новые администраторы кластера способны выполнять любые административные операции с {{ ydb-short-name }}.

Суперпользователь `root` был нужен для выполнения данной инструкции и при дальнейшем администрировании кластера его можно больше не использовать.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

И напрашивается одно предложение, что с ним лучше сделать: удалить/заблокировать/...


{% endnote %}

## Инструкция общая {#setup-general}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Согласен с комментарием, у меня такой же вопрос возник.

@@ -0,0 +1,90 @@
# Администратор базы данных

Администратор базы данных (БД) -- это пользователь, обладающий административными возможностями в рамках некоторой базы данных:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Администратор базы данных (БД) -- это пользователь, обладающий административными возможностями в рамках некоторой базы данных:
Администратор базы данных (БД) -- это пользователь, обладающий административными возможностями в рамках некоторой базы данных.


## Требуемая конфигурация {#database-admin-setup}

1. На уровне базы существует группа администраторов базы данных.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. На уровне базы существует группа администраторов базы данных.
1. На уровне базы данных существует группа администраторов базы данных.

## Требуемая конфигурация {#database-admin-setup}

1. На уровне базы существует группа администраторов базы данных.
2. Группа администраторов базы данных является владельцем корня базы данных.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. Группа администраторов базы данных является владельцем корня базы данных.
2. Группа администраторов базы данных является владельцем базы данных.


База данных определяется своим путём в схеме кластера, владелец этого пути (пользователь или группа) является владельцем базы.

## Требуемая конфигурация {#database-admin-setup}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Не сразу понял смысл слова "Требуемая".
    Первое, что приходит в голову, это что нужно сделать какие-то подготовительные действия, выставить. "требуемые параметры".
    Только дочитав до конца, понял, что это то, что мы получим в итоге выполнения инструкции, "образ результата".
  2. Возможно, этот раздел стоит перенести в конец. То есть мы выполнили инструкцию и пришли к некому целевому состоянию.

P.S.
То же самое про Администраторов кластера.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поддерживаю вопрос.


На настоящем кластере имена могут быть другими.

Создаёт и запускает базу данных [администратор кластера](./configure-cluster-admins.md), он же настраивает администраторов базы данных.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предложение смущает. Я пытаюсь найти инструкцию, как все эти шаги сделать. А оказывается, они идут далее.

Suggested change
Создаёт и запускает базу данных [администратор кластера](./configure-cluster-admins.md), он же настраивает администраторов базы данных.
Для выполнения шагов инструкции требуются права [администратора кластера](./configure-cluster-admins.md).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поддерживаю комментарий


TODO: Сослаться на запуск нод базы разными описанными в документации способами.

3. Создать в базе группу администраторов базы
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ниже идет пример, как создать пользователей. А тут написано "создать группу".


## Понятие администратора кластера в {{ ydb-short-name }}

Администратором кластера является пользователь, который имеет административный [уровень доступа](../concepts/glossary.md#access-level) на кластере и полные [права доступа](../concepts/glossary.md#access-control-list) на корне кластера.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не очень понятно, что такое "корень кластера". Я бы описал где-то понятие (как минимум в glossary) и сослался бы.


[Уровни доступа](../concepts/glossary.md#access-level) настраиваются в конфигурации кластера, [секция `security_config`](../reference/configuration/index.md#security-access-levels).

Права доступа назначаются на корень кластера средствами {{ ydb-short-name }}: YQL [командой `GRANT`](../yql/reference/syntax/grant.md) или CLI [командой `scheme permissions grant`](../reference/ydb-cli/commands/scheme-permissions.md#grant-revoke)). Список схемных прав доступа приведён в статье [{#T}](./access-rights.md).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Права доступа назначаются на корень кластера средствами {{ ydb-short-name }}: YQL [командой `GRANT`](../yql/reference/syntax/grant.md) или CLI [командой `scheme permissions grant`](../reference/ydb-cli/commands/scheme-permissions.md#grant-revoke)). Список схемных прав доступа приведён в статье [{#T}](./access-rights.md).
Права доступа назначаются на корень кластера средствами {{ ydb-short-name }}: [YQL-командой `GRANT`](../yql/reference/syntax/grant.md) или [CLI-командой `scheme permissions grant`](../reference/ydb-cli/commands/scheme-permissions.md#grant-revoke)). Список схемных прав доступа приведён в статье [{#T}](./access-rights.md).


Администратором кластера является пользователь, который имеет административный [уровень доступа](../concepts/glossary.md#access-level) на кластере и полные [права доступа](../concepts/glossary.md#access-control-list) на корне кластера.

[Уровни доступа](../concepts/glossary.md#access-level) настраиваются в конфигурации кластера, [секция `security_config`](../reference/configuration/index.md#security-access-levels).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ссылка "Уровни доступа" ведет на glossary а не конкретный якорь в ферме. Такое впечатление, что какая-то несогласованность по якорям.


Права доступа назначаются на корень кластера средствами {{ ydb-short-name }}: YQL [командой `GRANT`](../yql/reference/syntax/grant.md) или CLI [командой `scheme permissions grant`](../reference/ydb-cli/commands/scheme-permissions.md#grant-revoke)). Список схемных прав доступа приведён в статье [{#T}](./access-rights.md).

## Требуемая конфигурация {#cluster-admin-setup}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Раздел в целом тяжело читается. Например, не понятно название "Требуемая конфигурация". Кем требуемая? Это то, что необходимо настроить в настоящем кластере?

На уровне кластера существует группа администраторов кластера.

Я бы пояснил. В духе необходимо, чтобы был хотя бы один администратор кластера, рекомендуется, чтобы это была группа из нескольких субъектов для того, чтобы уменьшить риск потерять доступ к кластеру.

Группа администраторов кластера включена в списки уровней доступа

Не очень понятно. Требуется, чтобы при развертывании кластера эта информация была прописана?

В общем не хватает каких-то фраз типа "при развертывании кластера следует выполнить такие и такие действия с пояснением зачем они нужны"


{% endnote %}

## Инструкция общая {#setup-general}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Согласен с комментарием, у меня такой же вопрос возник.

- управлять конфигурацией кластера или других баз
- управлять правами на объектах выше уровня базы или в других базах

## Понятие администратора базы данных в {{ ydb-short-name }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Для меня не понятна ценность данного раздела. Такое впечатление, что содержимое раздела (2 абзаца) можно привести без заголовка, заголовок стереть.


База данных определяется своим путём в схеме кластера, владелец этого пути (пользователь или группа) является владельцем базы.

## Требуемая конфигурация {#database-admin-setup}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поддерживаю вопрос.


{% endnote %}

## Инструкция
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

поддерживаю предлагаемое изменение


На настоящем кластере имена могут быть другими.

Создаёт и запускает базу данных [администратор кластера](./configure-cluster-admins.md), он же настраивает администраторов базы данных.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поддерживаю комментарий

3. Создать в базе группу администраторов базы

```bash
{{ ydb-cli }} --user cluster-admin-1 --password `<пароль>` -d '/Root/example-db' yql -s '
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Стоит использовать "ydb sql"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants