随笔-面试问题,不同用户根据权限查看表中的不同字段,视图

本文探讨了如何通过创建视图来解决用户权限管理下的数据安全问题。提出利用视图技术,根据用户权限定制SQL查询,确保前端仅显示允许查看的字段,同时保护了数据库中的敏感信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景

当时面试官提的问题大概是这样:
有一个用户表,一个数据表,一个权限表。
用户表中的每个用户有不同的权限,分别可以查看数据表中固定字段的数据。
就比如,有个用户是销售部门的,他只可查看销售额,客户信息等,
有个用户是财务部门的,他可以查看员工薪资等信息,老板可以查看全部信息。
不同用户登录,展示不同字段的数据,这样你会怎么做?

我的想法

我的想法是直接将数据查询出来,返回给前端,并且把当前登录用户需要展示的字段发给前端,让前端进行部分可见,部分隐藏。
但是这样会有个问题:你数据表中的字段会暴露。这样是不安全的。

新解决办法

最新重新看了下数据库的东西。突然发现了华点!
这个新方法的核心就是:视图

  1. 我们可以根据不同的用户权限,建立视图,编写查询不同字段的sql
  2. 进行查询时,根据当前登录用户,获取其对应权限,进而获取对应的视图名,直接调用视图返回给前端即可。
  3. 在修改删除数据时,对视图进行增删改,实际是直接操作基础表,这样增删改也不会有问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静安书以沫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值