我的表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';
答案 0 :(得分:4)
使用CURRENT_ROLE
上下文变量:
CREATE OR ALTER VIEW HR_PROJECTS_VIEW(
...
where
P.ROLE = CURRENT_ROLE;