一个关于行级数据权限模型的问题

问:

举个例子,就拿销售数据来说


A销售员可以看到自己的销售情况和每一笔具体销售业务,但是看不到B的

B销售员可以看到自己的销售情况和每一笔具体销售业务,但是看不到A的

而销售经理则可以看到A和B的销售情况。


答案:

什么行级列级呀, 都是你系统里的概念, 实际业务上根本就木有这些概念地, 所以你的设计才会这么复杂难懂. 

在您的问题里, 偶首先认为每次处理的最小单位是费用报销的一张单据, 一张报销单需要有报销费用, 报销人, 审批等级, 等信息. 

-每个报销人都可以查询自己的报销单, 但是他看不到别人的, 这个用报销人的信息就可以控制

-在提交报销单的时候, 系统会根据报销单的金额自动确定审批等级

-用户信息中有审批等级一项, 审批时可按照等级管理用户的权限







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL 提供了行级权限控制功能,可以让数据库管理员为每个用户定义不同的行级别访问权限。这个功能可以保证敏感数据不被未经授权的用户访问。 以下是一个简单的示例,展示如何在 PostgreSQL 中设置行级别的访问权限: 假设我们有一个名为 "employees" 的表,其中包含员工的信息,包括姓名、地址、电话等。我们想要为每个员工设置访问权限,使得每个员工只能访问自己的信息,而不能访问其他员工的信息。 首先,我们需要创建一个包含所有员工信息的视图,例如: ``` CREATE VIEW employee_info AS SELECT * FROM employees; ``` 然后,我们可以使用 PostgreSQL 的 `GRANT` 命令为每个用户设置行级别的访问权限。例如,假设我们有两个用户 "user1" 和 "user2",我们可以使用以下命令为他们设置访问权限: ``` GRANT SELECT ON employee_info TO user1; GRANT SELECT ON employee_info TO user2; -- user1 只能访问自己的信息 CREATE POLICY user1_policy ON employee_info USING (username = current_user); -- user2 只能访问自己的信息 CREATE POLICY user2_policy ON employee_info USING (username = current_user); ``` 在上面的代码中,我们创建了两个行级别访问策略,分别适用于用户 "user1" 和 "user2"。这些策略使用 `USING` 子句来定义一个条件,该条件根据当前用户的用户名过滤出他/她自己的信息。 最后,我们需要确保所有用户都使用这个视图来访问员工信息,而不是直接访问 "employees" 表。我们可以通过撤销对 "employees" 表的访问权限来实现这一点: ``` REVOKE ALL ON employees FROM public; GRANT SELECT ON employee_info TO public; ``` 这样,除了管理员以外的所有用户都只能访问 "employee_info" 视图,而无法直接访问 "employees" 表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值