Использование просмотра firebird с фильтром по роли

У меня есть таблица tbl_projects с полем "role". Я хочу использовать это поле в качестве параметра для фильтрации данных, к которым имеет доступ каждый пользователь. Пример: я сотрудник отдела кадров (моя роль) и не вижу проекты отдела ИТ (другая роль).

Мое приложение использует OSAuth. Как я могу создать представление в firebird, которое фильтрует данные на основе всех ролей?

Пример: это представление фильтрует только роль "HR". Мне нужен фильтр для всех ролей.

CREATE OR ALTER VIEW HR_PROJECTS_VIEW(
    (_other_fields_)
    "ROLE")
AS
select
    P.(_other_fields_)
    P.ROLE
from 
    TBL_PROJECTS P
where 
    P.ROLE = 'HR';

person fmmatheus    schedule 26.07.2013    source источник


Ответы (1)


Используйте контекстную переменную CURRENT_ROLE:

CREATE OR ALTER VIEW HR_PROJECTS_VIEW(
...
where 
    P.ROLE = CURRENT_ROLE;
person ain    schedule 26.07.2013