Witam
Mam pytanie dotyczące Waszych najlepszych praktyk w kwestii oprogramowania dostępu użytkowników do własnych danych. Aktualnie w moich rozwiązaniach każdy dostęp do danych odbywa się za pośrednictwem procedur/funkcji PL/SQL które dla parametrów zwracają odpowiednia dane użytkownika. Każda z funkcji ma obowiązkowo przekazywany parametr z aplikacji
user => V('APP_USER')
mając id zalogowane usera procedura zwraca odpowiednie dane.
Równie dobrze zamiast parametru można użyć w procedurze
odczytu zmiennej globalnej APEX_APPLICATION.G_USER
Czy odczyt V('APP_USER') lub APEX_APPLICATION.G_USER w danej sesji będzie miał zawsze ta samą wartość i oba sposoby są równoważne ?
Moze ktoś zna inne sposoby na zorganizowanie filtrowania danych danego użytkownika np. w celu wyświetlenie tylko jego faktur, zamówień itd. Myślałem kiedyś o zastosowaniu widoków bazodanowych – tu widzę problem z danymi współdzielonymi (np. administrator będzie chciał widzieć dane pewnej grupy użytkowników) i wydajnością. Funkcje i procedura dają większe możliwości implementacji logiki niż widoki