使用视图firebird和按角色过滤

时间:2013-07-26 18:58:56

标签: delphi view firebird user-roles firebird2.5

我的表tbl_projects包含字段"role"。我想使用此字段作为参数来过滤每个用户有权访问的数据。示例:我是HR(我的角色)的员工,我无法从IT(其他角色)看到项目。

我的应用程序使用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';

1 个答案:

答案 0 :(得分:4)

使用CURRENT_ROLE上下文变量:

CREATE OR ALTER VIEW HR_PROJECTS_VIEW(
...
where 
    P.ROLE = CURRENT_ROLE;