2013-07-26 36 views
1

我有表tbl_projects与字段"role"。我想使用此字段作为参数来过滤每个用户有权访问的数据。例如:我是HR(我的角色)的员工,我看不到来自IT(其他角色)的项目。使用视图firebird与角色筛选

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

回答

4

使用CURRENT_ROLE上下文变量:

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