# Настройте, какие строки и столбцы видят пользователи

> Предоставьте команде доступ к одной таблице, чтобы каждый видел только разрешённые ему строки и столбцы.

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

На этой странице используется один пример: таблица **Deals** из вашей базы данных продаж со столбцами **Region**, **Rep**, **Amount** и **Margin**. Каждый торговый представитель должен видеть только сделки своего региона, а столбец **Margin** должен быть доступен только команде Finance.

## Как работают правила доступа

- **Правило для всех остальных** действует для всех, кому предоставлен доступ к таблице и у кого нет собственного правила. Без него они видят все строки и столбцы.
- **Правило для пользователя, команды или рабочего пространства** — это исключение. Если для пользователя есть исключение, оно применяется вместо правила для всех остальных.
- **Несколько исключений складываются.** Если к пользователю применяется несколько исключений, он видит строки из каждого из них, но не видит ни одного столбца, скрытого хотя бы одним из этих исключений.
- **Владелец таблицы всегда видит всё.** Правила действуют для всех остальных, кому предоставлен доступ к таблице, включая администраторов.

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

## Прежде чем начать

- Для создания или изменения правила нужен тариф Enterprise.
- Правилами управляют владелец таблицы и администраторы рабочего пространства.
- Сначала предоставьте доступ к таблице: откройте её со страницы базы данных и выберите **Поделиться**. Правила действуют для тех, кому предоставлен доступ.

## Настройте правило для всех остальных

В этом примере каждый торговый представитель видит только сделки своего региона, а столбец **Margin** не видит никто.

1. Откройте таблицу и выберите **Поделиться**, затем выберите **Пользователи с доступом**.
2. Рядом с пунктом **Все остальные** выберите **Строки и столбцы…**.
3. В разделе **Строки** выберите **Только строки, в которых…**.
4. Выберите **Столбец** (**Region**) и **Условие** (**равно**).
5. Выберите **Атрибут участника**, затем выберите **Атрибут** (`region`). Чтобы сравнивать с фиксированным значением, выберите **Значение** и введите его.
6. В разделе **Скрытые столбцы** отметьте **Margin**.
7. Выберите **Сохранить**.

Если правило ограничивает данные, доступные пользователям без собственного правила, Dvina сначала запросит подтверждение и укажет, сколько пользователей или команд оно затронет.

В разделе **Строки** можно также выбрать **Все строки** или **Без строк**, чтобы правило не показывало ни одной строки.

> [!TIP]
> Условие сравнивает данные в столбце с учётом его типа: для текстовых столбцов доступны условия **равно**, **не равно**, **содержит** и **не содержит**, для числовых — больше или меньше значения, а для столбцов с датами — до, после или между датами. В любом столбце можно проверить наличие значения или пустую ячейку.

## Добавьте исключение для пользователя или команды

Команда Finance должна видеть все сделки, включая столбец **Margin**.

1. В разделе **Пользователи с доступом** найдите команду Finance. Откройте меню рядом с ней, в котором указана её роль, например **Может просматривать**.
2. Выберите **Строки и столбцы…**.
3. В разделе **Строки** выберите **Все строки**, а в разделе **Скрытые столбцы** оставьте все столбцы неотмеченными.
4. Выберите **Сохранить**.

В каждой строке раздела **Пользователи с доступом** указано, что видит пользователь или команда, например **Все строки** или **Некоторые строки, 1 столбец скрыт**. Если два исключения скрывают разные столбцы, Dvina сообщает, что пользователь, к которому применяются оба исключения, не видит столбцы, скрытые любым из этих правил.

Правило для рабочего пространства действует для всех его участников вместе с их собственными правилами: строки, доступные по обоим наборам правил, объединяются.

## Задайте атрибуты участников

Правило, которое сравнивает столбец с атрибутом участника, показывает каждому строки, соответствующие его значению атрибута. В этом примере менеджер по продажам со значением West в атрибуте `region` видит только сделки региона West. Атрибуты доступны на тарифе Enterprise, и задают их администраторы.

1. В разделе Настройки › **Участники** выберите **Атрибуты участников**.
2. Введите **Новый атрибут**, например `region`, и выберите **Добавить**. Используйте строчные буквы, цифры и знаки подчёркивания. Начните с буквы.
3. В разделе **Участники** откройте меню роли участника и выберите **Атрибуты участников**.
4. Введите значение для участника, например `West`. Чтобы показать строки для нескольких значений, разделите их запятыми, например `West, Central`.
5. Выберите **Сохранить**.

При использовании SCIM атрибуты `department`, `cost_center`, `division`, `organization`, `employee_number`, `title` и `user_type` поступают от вашего поставщика удостоверений.

> [!IMPORTANT]
> Если атрибут участника не задан, правило, которое сравнивает значения с этим атрибутом, не показывает ему ни одной строки. Участник видит отметку **Ограниченный доступ** и сообщение с просьбой обратиться к администратору, чтобы тот задал атрибут. Если удалить атрибут, правила доступа, которые сравнивают значения с ним, больше не будут соответствовать ни одному участнику.

## Что видят участники

Правила действуют везде, где выполняются запросы к таблице: в ответах в чате, карточках, экспорте карточек и аналитических отчётах.

- Отметка **Ограниченный доступ** отображается на карточке или в аналитическом отчёте, если правило ограничивает доступные вам данные.
- Скрытый от участника столбец нигде ему не показывается. Если участник запрашивает его, запрос отклоняется так, будто столбца не существует.
- Если правило не показывает участнику ни одной строки, Dvina не отправляет запрос в базу данных.
- Когда Dvina описывает таблицу участнику, для которого действует правило, она не включает скрытые столбцы и описания, составленные на основе строк, часть которых может быть ему недоступна.
- На странице базы данных таблицы с правилами доступа отмечены как **Ограниченный доступ**.

### Общие аналитические отчёты и чаты

- Участник, для которого действует правило, при открытии общего аналитического отчёта видит свой результат, а не ваш.
- Когда вы делитесь чатом, задачей или веткой обсуждения, в которых карточки запрашивают данные из таблицы, Dvina указывает участников, чьи правила ограничивают доступные им данные. В их карточках отображаются данные в рамках их прав доступа, но в тексте ответов остаются показатели, которые видели вы.

## Посмотрите, кто запрашивал данные из таблицы

В журнале аудита фиксируется каждый запрос к таблице с правилами доступа, а также каждый запрос от участника, которому предоставлен доступ к таблице.

1. В разделе **Участники с доступом** выберите **Кто запрашивал данные из таблицы**.
2. Выберите запись, чтобы увидеть, **Когда** и **Кто** выполнил запрос, сколько **Строк** он вернул и **Откуда** поступил: **Чат**, **Карточка**, **Аналитический отчёт** или **Другое**.

Администраторы также могут найти эти события в разделе **Таблицы** на странице Настройки › **Журнал аудита**. Просмотр участников, запрашивавших данные из таблицы, доступен на тарифе Enterprise.

## Удалите правило

1. Откройте правило в разделе **Участники с доступом**.
2. Выберите **Удалить правило**. Если удаление откроет кому-либо доступ к дополнительным данным, Dvina сначала запросит подтверждение и укажет, кого это затронет. Для подтверждения выберите **Удалить правило**.

## Тарифы

Создание и изменение правил, атрибуты участников и функция **Кто запрашивал данные из таблицы** доступны на тарифе Enterprise. Уже сохранённые правила продолжают действовать на любом тарифе, и вы по-прежнему можете просматривать и удалять их.

## Связанные материалы

- [Базы данных и хранилища](/docs/connectors/databases)
- [Участники и роли](/docs/teams/members-and-roles)
- [Использование журнала аудита](/docs/teams/audit-log)
- [Общий доступ](/docs/use-dvina/features/sharing)
