Użytkownik nie widzi rekordu, który powinien — jak to naprawić
Dlaczego użytkownik Salesforce nie widzi rekordu, który powinien — lista kontrolna: uprawnienia do obiektu, FLS, model udostępniania i reguły restrykcji.
Lustrzane odbicie pytania „dlaczego ten użytkownik widzi ten rekord” jest równie częste: ktoś powinien widzieć rekord, a nie widzi. Dobra wiadomość jest taka, że dostęp w Salesforce przechodzi przez stałą sekwencję kontroli — więc zamiast zgadywać, możesz metodycznie wyizolować źródło problemu.
Dwie kontrole, które musi przejść każdy dostęp do rekordu
Salesforce przyznaje dostęp tylko wtedy, gdy obie te kontrole zakończą się powodzeniem:
- Poziom obiektu — czy użytkownik ma CRUD na obiekcie oraz field-level security na odpowiednich polach? (Z profili i zestawów uprawnień.)
- Poziom rekordu — czy model udostępniania przyznaje dostęp do tego konkretnego rekordu?
Niepowodzenie którejkolwiek z nich ukrywa rekord. Pierwsze zadanie to więc ustalić, która kontrola zawodzi — a powie ci to objaw.
Najpierw odczytaj objaw
| Objaw | Zawodząca kontrola | Przejdź do |
|---|---|---|
| W ogóle nie można znaleźć obiektu/zakładki | Uprawnienie do obiektu lub widoczność aplikacji/zakładki | Krok 1 |
| Widzi obiekt, ale nie widzi jednego rekordu | Udostępnianie na poziomie rekordu (lub reguła restrykcji) | Krok 3 |
| Otwiera rekord, ale pola są puste | Field-level security | Krok 2 |
| Widział go wczoraj, dziś już nie | Niedawna zmiana / przeliczanie | Krok 4 |
Krok 1 — Uprawnienia do obiektu i widoczność
Jeśli użytkownik nie może dotrzeć do obiektu ani jego zakładki:
- Potwierdź Read na obiekcie w jego profilu lub zestawie uprawnień.
- Potwierdź, że aplikacja i zakładka są dla niego widoczne.
Brak dostępu do obiektu oznacza brak rekordów, niezależnie od udostępniania. Napraw to w pierwszej kolejności. (Jeśli problem dotyczy zapisu rekordu, a nie jego wyświetlania, przyczyną jest zwykle powiązany rekord, do którego użytkownik nie ma dostępu — zobacz insufficient access rights on cross-reference id.)
Krok 2 — Field-level security
Jeśli rekord się otwiera, ale konkretne pola są puste, to dostęp na poziomie rekordu jest w porządku — pola ukrywa field-level security. Przyznaj FLS dla tych pól w profilu użytkownika lub w zestawie uprawnień. (To ustawienie profilu/zestawu uprawnień, a nie udostępniania — zobacz profile a zestawy uprawnień a reguły udostępniania.)
Krok 3 — Udostępnianie na poziomie rekordu
Jeśli użytkownik ma dostęp do obiektu, ale nie może dotrzeć do jednego rekordu, prześledź model udostępniania:
- Domyślny dostęp dla całej organizacji — jeśli jest Private, użytkownik widzi tylko rekordy, których jest właścicielem, te należące do kogoś poniżej niego w hierarchii ról albo te udostępnione przez regułę/zespół/udostępnienie ręczne. Jeśli żaden warunek nie zachodzi, masz odpowiedź — dodaj regułę udostępniania, członkostwo w zespole albo udostępnienie ręczne.
- Hierarchia ról — czy użytkownik rzeczywiście stoi powyżej właściciela? Jeśli nie, nie ma dziedziczenia w górę.
- Reguła restrykcji go odfiltrowuje — reguły restrykcji zawężają dostęp ponad to, co daje udostępnianie. Użytkownik może mieć dostęp dzięki udostępnianiu, ale zostać wykluczony przez kryteria reguły restrykcji. Sprawdź reguły restrykcji na obiekcie dla zestawu uprawnień użytkownika.
Krok 4 — Niedawne zmiany i przeliczanie
Jeśli dostęp zniknął:
- Poszukaj zmian we właścicielu, hierarchii ról, regułach udostępniania, regule restrykcji albo w przypisaniach zestawów uprawnień użytkownika — każda z nich może odebrać dostęp.
- Potwierdź, że przeliczanie udostępnień się zakończyło. Po zmianach właściciela/roli/reguł Salesforce asynchronicznie przetwarza udostępnienia na nowo i w tym czasie dostęp może być opóźniony.
Lista kontrolna diagnozy
- Czy może dotrzeć do obiektu/zakładki? → uprawnienie do obiektu + widoczność aplikacji/zakładki.
- Czy pola się wyświetlają? → field-level security.
- Czy OWD jest Private bez stosownego udostępnienia? → dodaj udostępnianie.
- Czy użytkownik jest powyżej właściciela w hierarchii? → jeśli to konieczne.
- Czy reguła restrykcji go wyklucza? → dostosuj kryteria.
- Czy w toku jest niedawna zmiana lub przeliczanie? → poczekaj / cofnij.
Pierwsza zawodząca kontrola to twoja naprawa. Zwróć też uwagę na problem odwrotny — nadmiernego dostępu — w artykule użytkownik widzi rekord, którego nie powinien.
Przejdź od razu do zawodzącej warstwy
Najwolniejsza część to testowanie każdej warstwy po kolei, często przez logowanie się jako dany użytkownik. AgentForceAccess skraca ten proces: zapytaj, dlaczego użytkownik nie może zobaczyć rekordu, a otrzymasz informację, która kontrola go blokuje — uprawnienie do obiektu, field-level security, brakujące udostępnienie czy reguła restrykcji — dzięki czemu od razu naprawisz właściwą warstwę.
Najczęściej zadawane pytania
Użytkownik widzi obiekt, ale nie widzi jednego konkretnego rekordu. Dlaczego?
To problem na poziomie rekordu. Przy domyślnym dostępie Private użytkownik widzi tylko rekordy, których jest właścicielem, te należące do kogoś poniżej niego w hierarchii ról albo te udostępnione przez regułę, zespół lub udostępnienie ręczne. Jeśli żaden z tych warunków nie zachodzi, rekord pozostaje ukryty. Może go też odfiltrowywać reguła restrykcji.
Użytkownik może otworzyć rekord, ale kluczowe pola są puste. Dlaczego?
To field-level security, a nie udostępnianie rekordów. Użytkownik ma dostęp do rekordu, ale jego profil lub zestawy uprawnień ukrywają te pola. Przyznaj field-level security dla tych pól na odpowiednim zestawie uprawnień.
Użytkownik w ogóle nie widzi obiektu ani zakładki. Co jest nie tak?
Najprawdopodobniej brakuje mu uprawnienia Read do obiektu albo aplikacja/zakładka jest ukryta dla jego profilu. Uprawnienia do obiektów oraz widoczność zakładek/aplikacji pochodzą z profili i zestawów uprawnień — napraw to, zanim zajrzysz do modelu udostępniania.
Dostęp działał wczoraj i przestał. Co się zmieniło?
Poszukaj niedawnej zmiany właściciela, hierarchii ról, reguł udostępniania, reguły restrykcji albo zestawów uprawnień użytkownika — każda z nich może odebrać dostęp. Upewnij się też, że przeliczanie udostępnień się zakończyło, ponieważ podczas ponownego przetwarzania dostęp może być opóźniony.
Zobacz to na swojej organizacji
AgentForceAccess wyjaśnia prostym językiem, dlaczego dowolny użytkownik widzi dowolny rekord lub plik — w każdym mechanizmie współdzielenia Salesforce.
Poproś o wczesny dostęp