数据管理篇 | 数据权限是个大问题

0 评论 492 浏览 1 收藏 9 分钟

在数据驱动的商业世界中,数据权限管理是确保信息安全、合规性和数据治理的关键环节。本文深入探讨了数据权限的复杂性和挑战,从开发和运营两个角度分析了数据权限模型的适用性,以及在实际业务流程中如何有效实施数据权限控制。

01 面向开发还是面向运营

这里主要介绍面向开发的数据权限。面向运营的数据权限会在数据运营篇数据运营中的权限问题 介绍。

开发过程中的数据权限会有创建表、修改表、写入数据、删除数据等等。

在“当我们谈论元数据,我们在谈什么”中提到,面向开发元数据展示形式和面向运营的展示形式是否一样,是一个可以讨论的点,这里我们当作不一样。

同样,面向开发的权限申请是否和面向运营的权限申请,使用同一个流程也是可以讨论的点。毕竟,开发过程中数据加工者需要的权限包括创建表、修改表、写入数据、删除数据。而面向运营的数据消费者,只需要查询数据的权限。

数据权限似乎能讲很复杂,但是似乎又就那么点东西。后续再不断完善更新吧。

02 数据权限模型–RBAC模型适用你的场景吗?

说起数据权限,第一反应就是“用户-角色-权限”的三层关系,将一组数据的权限(可以是数据的增删改查的任意权限)放到一个角色里面去,然后再将角色授权给不同的用户。如果中间有部门的层级,可能还会增加一层,将角色授权给部门,部门内的所有用户都具备相同的权限。

听起来,挺合理,但是有一个现实的问题,这种标准的授权是否适用于现有的企业内的权限申请流程。如果现在企业内权限的申请流程是按人申请的,且申请之后只能开通现有流程中已申请的表的权限。那么不同的流程,就没有办法做到和角色的对应,势必出现角色特别多,不知道哪种角色应该跟给谁了。

所以,到底需要用怎样的数据权限授权方案,其实需要结合实际的权限申请流程、粒度来做决定。

03 权限-用户的双向查询

不管使用哪种形式进行了用户的数据授权,都会面临一个问题,就是查看一个用户有哪些权限,同时,又需要查看某个数据权限都授权给了哪些人。这相当于一个双向的数据授权。但是往往在数据权限的产品设计中,往往会忽略一个方向,倒也不是不能用,但是就是查询起来需要手动 一个个点开。这也算是一个实践过程中的优化点了。

04 数据权限的审批节点

数据中台只管理数据,不拥有数据。数据仍然是业务的,换句话说就是数据中台的数据owner仍旧是各个数据的业务方。因为我们不拥有数据,所以当有业务方想使用数据,进行申请数据的时候,理论上仍然需要业务方进行审批的(当然,这里也会有数据owner、数据BP等不同的审批类型)。业务方审批通过之后,数据中台的人再审批(主要技术层面的一些审批)。这里有个问题就是如果业务方来审批的话,抛开敏感的、机密的数据不提,业务方有什么理由不审批通过。如果都审批通过了,是不是业务方审批就变成了一种形式了。

还不考虑,数据中台将数据进行加工之后,多个业务方数据汇总表,没有办法指定唯一业务方,甚至区分不出来业务方了。

所以,是否比较合理的形式是,规定好数据密级之后,如果是普通密级的,跳过业务方审批,直接数据中台进行偏技术维度的审批就可以了。如果是高密级的再进行业务审批。(当然高密级的也不会放在一个集群上)。这样既能减少各方的审批压力,又能加快用数效率,还能提升数据中台的审批地位。个人感觉是一个不错的方法。

05 数据权限的传递范围

这里的权限的传递,倒不是说权限的上下继承,这里的权限传递是指在不同组件间的权限打通。这里仅仅是一个想法讨论,并没有在实践中完全实现。或者有更好的方案,工作中没有接触到。

要考虑数据权限的传递范围,首先需要考虑的一个点就是在整个大数据流转使用过程中一共经过多少种存储组件,或者说一共经过了多少种存储类型。不考虑批流一体,数仓一体等等。只说一个比较通用的场景,业务数据进入数据中台被用户使用的流转:第一步进入数据湖(HIVE、ODPS等等大数据存储,在其中进行数据的分层加工),第二步,进入数据仓库(MPP、MySQL、GP等。因为大数据存储类的查询效率较慢,不足以支撑快速查询要求所以需要一个快速查询引擎)第三步,被多种方式进行数据消费(做成BI报表被消费、做成数据服务API被消费、直连查询被消费)。

我们总是希望一处授权,多处使用的,但是像上面这三步,涉及到不同的存储,不同的工具。不同存储有不同账号进行权限管理,不同工具之间又会有自己的权限体系。基本上打通很困难,很多环节中都需要人工进行一定的传递。

像上面说的这种,可能有不同的方式能够更好的来解决这个问题,只是自己没有接触到。希望后续能够不断的深入吧。

06 数据源的统一管理

说到数据权限的统一,不得不提的就是数据源的统一。

数据平台是以元数据为中心,那么数据源就是这个中心的一个起始点。大数据平台也需要对数据源进行统一的管理,这里统一管理的数据源仅仅包括数据源的技术信息,包括了数据源的IP地址、用户名、密码等连接到数据库的信息。数据源的业务信息、同步数据量信息、甚至变更信息等,甚至是一个数据源的治理–当管理大量数据源的时候,哪些是核心、哪些已经入湖、比例如何、连通性监控、变更监控等等。

管理好了统一的数据源,我们会在数据集成的源端、目标端使用。会在离线开发、实时开发过程中使用,也会在数据分析的即席查询过程中使用,在可视化BI中使用。当然,数据源也分类型,每个模块支持哪些类型的数据源,就需要依照需求自己来做定位了。

这里数据源的统一管理也是一个不断探索的阶段,和上面说的一样,不同组件中都有自己的数据源管理,如何打通需要再深入探讨。

作者:数据小吏 公众号:数据小吏

本文由 @数据小吏 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!