2013-07-26 38 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;