我正在尝试构建一个将在6个工作站点中使用的应用程序。我希望所有员工的详细信息都存放在同一个应用程序中,每个工作人员都会有一个' Site'分配给他们(他们工作的城市)。当该站点的经理使用该应用程序时,我希望他们只能看到他们有权访问的站点中的员工。
我一直在努力解决这个问题。 我已经设置了所有表格和页面,以便可以看到所有员工。 我创建了用户组,并将不同的用户分配到不同的组(站点)。我不知道如何限制访问权限,甚至不知道如何引用用户所在的组。
非常感谢有关此主题的任何帮助。
提前谢谢
答案 0 :(得分:0)
我自己找到了合适的解决方案。我创建了一个名为'Tbl_000_UserAccess'的表 在此表中有3列(ID,用户ID,站点ID)。
我将用户和他们可以查看的网站ID添加到此表中。
然后我在staff表上创建一个视图,将记录限制为当前User的UserID。以下是我对任何感兴趣的人的编码:
创建或替换强制视图“Vw_010_Staff”(“ID”,“Emp No.”,“名字”,“姓氏”,“团队负责人”,“教练”,“JE”,“CD”,“ IRE“,”FAM“,”GB“,”GST“,”Emp“,”SLS“,”Bus RADC“,”KS Ind“,”KS N Ind“,”Anon“,”OB“,”Resigned“ ,“原因”,“网站”)AS 选择“Tbl_010_Staff”。“ID”为“ID”, “Tbl_010_Staff”。“员工编号”为“Emp No.”, “Tbl_010_Staff”。“名字”为“名字”, “Tbl_010_Staff”。“姓氏”为“姓氏”, “Tbl_011_TeamLeaders”。“名字”|| ''|| “Tbl_011_TeamLeaders”。“姓氏”为“团队负责人”, “Tbl_012_Coaches”。“名字”|| ''|| “Tbl_012_Coaches”。“姓氏”为“教练”, “Tbl_014_JE”。“JE”为“JE”, “Tbl_010_Staff”。“客户详细信息”为“CDstuff”, “Tbl_010_Staff”。“IR Essentials”为“IRE”, “Tbl_010_Staff”。“家庭税收抵免”为“FAM”, “Tbl_010_Staff”。“一般业务”为“GB”, “Tbl_010_Staff”。“GST”为“GST”, “Tbl_010_Staff”。“雇主”为“Emp”, “Tbl_010_Staff”。“学生贷款”为“SLS”, “Tbl_010_Staff”。“应收账款”为“公共汽车RADC”, “Tbl_010_Staff”。“Kiwi Saver Ind”为“KS Ind”, “Tbl_010_Staff”。“Kiwi Saver NonInd”为“KS N Ind”, “Tbl_010_Staff”。“匿名”为“Anon”, “Tbl_010_Staff”。“Outbound”为“OB”, “Tbl_010_Staff”。“无效”为“已辞职”, “Tbl_010_Staff”。“非活动原因”为“原因”, “Tbl_010_Staff”。“网站”为“网站”
from (((("Tbl_010_Staff" left outer join "Tbl_011_TeamLeaders" on "Tbl_010_Staff"."Team Leader" = "Tbl_011_TeamLeaders"."ID")
left outer join "Tbl_012_Coaches" on "Tbl_010_Staff"."Coach" = "Tbl_012_Coaches"."ID")
left outer join "Tbl_014_JE" on "Tbl_010_Staff"."JE" = "Tbl_014_JE"."ID")
left outer join "Tbl_000_UserAccess" on "Tbl_010_Staff"."Site" = "Tbl_000_UserAccess"."SiteID")
**where "Tbl_000_UserAccess"."SiteID" =
(Select "Tbl_000_UserAccess"."SiteID"
from "Tbl_000_UserAccess"
where "Tbl_000_UserAccess"."UserID" = NVL(v('APP_USER'),USER))**
这完美无缺。唯一的烦恼是当用户被添加到架构时,我还需要在useraccess表中添加一条记录。 请注意,UserID是个案敏感的
希望这有帮助