Безопасность: кто что видит

Стены и замки дома. Модули: 2.12.22.32.42.55.2

1. Четыре двери подряд

Чтобы человек или программа увидели значение поля в записи, нужно пройти четыре двери, и каждая может быть закрыта отдельно. Когда что-то не видно, первым делом спроси: какая дверь закрыта?

Человекили программа 1 Входлогин, MFA, IP,лицензия 2 ОбъектCRUD: создать,читать, менять 3 ПолеFLS: видно лии можно ли менять 4 Записьsharing: какиеименно записи Видитзначение не пускаетв org вообще нет вкладки,insufficient privileges поля нет на экране,в API поле пустое запись не находится,отчёт показывает меньше Красным: как выглядит закрытая дверь. Ищи по симптому, какая из четырёх

Двери 2 и 3 задаются правами пользователя (permission sets), дверь 4 задаётся sharing. Это два разных механизма, и их часто путают.

2. Откуда у пользователя права

Права пользователя складываются из нескольких источников. Важно: они только добавляются. Ни один permission set не может отнять право, которое дал другой источник.

User Licenseпотолок: что вообще возможно Permission Set Licenseлицензия на функцию, выдаётся первой Profileбаза, одна на человека. Не меняем Userитог: сумма всех источников Permission setsдобавки прав, главный инструмент Permission set groupпакет наборов под роль Sharingкакие записи (схема ниже) Порядок для новой функции: сначала PSL, потом permission set. Иначе система не даст выдать нужные права

Правило профессии: права выдаём только через permission sets и группы, профили не правим. Профиль общий для многих людей, и правка в нём задевает всех сразу.

3. Доступ к записям: открываем снизу вверх

Org-wide defaults задают самый строгий базовый уровень для объекта. Всё, что выше, только открывает доступ дополнительным людям. Закрыть сверху нельзя: если OWD стоит Public Read/Write, никакое правило не спрячет запись.

Org-wide defaults (OWD)Private, Public Read Only, Public Read/Write: база для всех Role hierarchyначальник видит записи подчинённых Sharing rulesоткрыть группе по владельцу или по критериям Manual sharing, teamsоткрыть конкретным людям доступ только расширяется Закрыть сверху нельзя.Поэтому OWD ставят самым строгим,а дальше открывают нужным Владелец записи и администратор видят её всегда

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

4. Где смотреть, когда что-то не видно

СимптомДверьГде смотреть
Нет вкладки или приложения, Insufficient Privileges при открытии объекта2 ОбъектPermission sets пользователя: Object Settings, права на объект
Поля нет на экране, но на странице layout оно есть3 ПолеFLS в permission sets. Проверка: Setup, Object Manager, поле, Set Field-Level Security
Flow или Apex не пишет поле, ошибка или тишина3 ПолеFLS у пользователя, под которым идёт код. В Revenue Cloud поле без FLS иногда просто не сохраняется, без ошибки
Коллега видит запись, а ты нет4 ЗаписьКнопка Sharing на записи, роль, sharing rules, OWD объекта
Нужное право нельзя выдать, его нет в списке1 ВходЛицензия пользователя и Permission Set Licenses: выдана ли PSL функции
Интеграция получает 401 или 4031 Вход, 2 ОбъектТокен, external client app или connected app, права integration user

Самый быстрый способ проверить: войти под пользователем (Login As, кнопка на карточке User при включённой настройке) и повторить его шаги. На странице пользователя в Setup видны все его permission sets и группы, а сводка доступа (View Summary) показывает, откуда пришло каждое право.

5. Правила, которые стоят дороже знаний

Production только чтение. Ни одной правки руками, ни одного деплоя без согласования. Даже если видишь очевидный баг.
Профили не трогаем. Все права через permission sets и группы. В названии permission set функция, а не номер задачи.
Минимум прав для интеграций. Отдельный integration user, только нужные объекты и поля, никогда не логин человека.
Секреты не в файлах. Пароли, токены, ключи не пишем в код, в CSV, в journal, в чат. Для кода есть Named Credentials, для людей менеджер паролей.
Проверяй под пользователем. Под администратором видно всё, поэтому проверка под ним ничего не доказывает.
Данные клиента не уходят наружу. Не вставляй реальные записи клиента в публичные сервисы, онлайн-валидаторы и чужие чаты.
Итог одной фразой. Увидеть значение можно, только пройдя четыре двери: вход, объект, поле, запись; первые три открывают права из permission sets поверх лицензии, четвёртую открывает sharing поверх самого строгого OWD.
Дальше: Интеграции. Назад: Как устроен Salesforce.