数据隔离的实现策略

数据隔离的实现策略

什么是数据隔离?简单的说就是我们的数据都在数据库里,我们只能调取某些相关的数据,而无法调取,或者说没有权限其他不相关的数据。做到一个隔离效果,这就是数据隔离。

数据隔离的一些级别

公司级别

首先,我们的数据都是存储在数据库中的数据表中的,不同公司的人员信息都会存储在同一个表中。这个肯定是存储在一起的,不然每个公司都独立一张表,那不难维护死了。

image-20201119210541861

当我们进行操作数据的操作时,理论上我们可以查询到所有公司的信息。但是对于A公司而言,它理论上只能操作A公司的信息,不能操作B公司的数据。

image-20201119210713951

image-20201119210748992

由于我们的人员都是属于某某公司的,所以我们可以在登录的时候记录一下登录的账户是哪个公司的。我们使用一个临时的数据库去记录一下小杜的一些信息,等下还要用的。(图中把数据临时存放在黄色的数据中)

在这里插入图片描述

等到这个用户要操作公司的信息的时候,我们把之前临时存取的数据取出来,然后我们就知道这个用户的公司信息,我们只要比对这个用户要操作的数据是不是本公司的就行了。
可以理解为之前那个登录进来的小杜,因为已经登录过了,所以执行操作数据的时候无需再传入账号密码来校验身份了,服务器是有一些技术是可以识别这用户是否是已经登录过的用户的!

image-20201119212717493

当然公司还有分公司和母公司这些概念了,分公司能不能调度总公司的数据,总公司能不能调度分公司的数据,这些的话根据实际企业技术要求,进行适当的条件判断即可。

部门级别

刚刚我们可以通过临时存储公司信息的方式,在我们操作数据的时候进行条件判断,就可以做到A公司不能操作B公司,B公司不能操作A公司的需求了。

但是即便是同一个公司,也存在部门划分,什么意思呢?比如说,我们公司有技术部,产品部,人事部,市场部等等。每个部门都有一个负责人,部门负责人可以查看他的下属的一些信息,但是看不了其他部门的信息。

image-20201119214147979

但是人事部和一些领导除外,他们有资格查看所有人员的信息。还有一点是,比如技术部负责人可以看到下属的一些信息,但是却无法修改,比如薪资。老大觉得你表现不错,想给你加薪,但是他不能直接給你数据库改信息,应该写一份申请给人事部,人事部负责修改薪资。

image-20201119214502181

所以我们要进行操作一个部门的一些数据的时候,我们会进行一个条件判断,当然公司这种肯定一样的,这个上面已经说过了。然后我们判断一下部门信息,是否是人事部,领导,如果是的话我们就有权利去跨部门的操作数据。否则必须得判断一下是否是同一个部门的,如果不是同一个部门,则无权限访问。

image-20201119215138648

如图,我们模拟了几个职位,其中章总和小朱都可以调度人员信息,当然人事部只是一个部门,职位才是具体干什么的。当然我们每个部门都应该有个部门负责人的,或者叫人事总管。

image-20201119215418815

对于非人事部门的总管也只是一些只读的权限,甚至还有些信息也是隐藏的。比如工作年限,简历上写过会什么什么技术,上面几家工作过的单位干过哪些职位,任期多长时间这些信息是可以看的。但是身份证什么信息又不让看了。

人员级别

公司级别比较简单,每个公司都只能操作自己公司的数据。对于部门级别的数据隔离,相对而言就显的有些复杂了,应该涉及实际业务场景,不同部门之前有比较复杂的权利关系。

人员级别是基于部门级别的,只不过更加细粒化了!我们的部门之前存在一些数据的隔离,即部门之间的数据不是完全透明的,人员信息也一样。对于用户的一些隐秘的信息,这些公司应该留档,但是不能随意的调度。比如员工入职的时候会填写非常详细的用户资料,比如身份证,住址等等。这些信息应该保存进数据库,但是不能随意的泄露,这些属于员工的隐私。比如我们设置公司的负责人才有权限去调度这些信息。

对于人员管理,涉及到细节更多,和业务息息相关,所以这里就不展开将了,解决方案和部门级别差不多。

技术实现

我们看到数据隔离是一个非常重要的技术,我们上面的图中也透露了一些解决,就是比对公司是否一致了。

image-20201119212717493

部门的话,也无非是多一层判断罢了。

image-20201119221151159

领导或者人事登录系统,则可以跨部门查操作数据。

image-20201119221226698

当然我们通过这种方式,需要我们提供以下数据:

信息描述
公司Id用于判断是否是同一个公司
部门Id用于判断是否是用一个部门
职位Id用于判断是某某部门的什么职位
员工Id用于判断是那些人员

我领入几个场景,方便大家理解。(x表示不需要,√表示需要)

场景相同公司相同部门某个人员
公司的公开注册信息×
公司的内部管理制度表
公司的技术部技术文档
公司的人事信息×
公司的员工隐私信息
  1. 公司公开注册信息:比如是否上市,投资人,公司规模,注册资金等等信息这些不是同一公司也能访问

  2. 某公司的规章制度:这些只有本公司的人员才可以看到,所以需要是本公司才能看到

  3. 技术部门的技术文档:这些技术的东西只有技术人员直接才能查看,需要都是技术部门的。

  4. 人事信息:这些是否需要相同部门我打了一个问号,指的是人事部和领导的特殊性。

  5. 员工的隐私:这些应该不是某某部门就能看到,而是几个特殊的人员才有的权限,比如员工本人,和公司负责人等等。

以上的几个信息都可以通过用户登录时去数据库比对账号密码的同时,顺道一并查询出来,然后该用户操作数据时,根据具体的业务需求我们再看看需要比对哪些信息,是否需要是同个公司,是否需要是同个部门等等。。。

flag

以上就是数据隔离的一些思路了,关于具体的技术实现,我放在下一篇技术文档。

  • 12
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 关于系统的数据隔离和定制化机制研究,可以采用多层次的数据隔离和访问控制机制,例如通过权限管理、身份认证、加密等手段来保证数据安全。同时,还可以引入个性化定制化机制,根据用户的不同需求来提供不同的服务,例如通过机器学习和数据挖掘等技术,对用户的历史数据进行分析,从而为用户提供更加个性化的服务。 ### 回答2: 系统的数据隔离和定制化机制研究是指针对不同用户或组织之间的数据隔离需求和定制化需求进行研究,以确保系统能够根据不同用户或组织的要求,对数据进行有效的隔离和定制化处理。 首先,数据隔离是指将不同用户或组织之间的数据进行物理或逻辑上的隔离,以防止数据泄露或被未经授权的人访问。研究数据隔离机制可以包括使用访问控制策略、强化身份验证、加密等技术手段,以确保数据的机密性和完整性,并减少数据被滥用的风险。研究还可以探索如何提供更灵活的数据权限管理,允许用户根据自身需要进行定制化的数据访问控制。 其次,定制化机制研究是指针对不同用户或组织的个性化需求,为其提供定制化的系统功能和服务。通过研究定制化机制,系统可以根据用户或组织的偏好、行为习惯等特征,为其提供个性化的用户界面、功能设置、推荐算法等,提升用户体验和工作效率。研究还可以探索如何提供可扩展的定制化机制,允许用户自行进行系统配置和扩展,满足个性化的需求。 系统的数据隔离和定制化机制研究对于保护个人隐私、做好数据安全管理以及提升用户体验都具有重要的意义。研究者可以通过深入理解不同用户和组织的需求和挑战,设计和实现相应的数据隔离和定制化机制,从而提供安全可靠、灵活高效的系统服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值