跳到主要内容

7 篇博文 含有标签「数据管理」

About database management

查看所有标签

CloudDM 强化 StarRocks 可视化数据管理能力

· 阅读需 2 分钟
刘琳玉
刘琳玉

CloudDM 个人版是一款数据库数据管理客户端工具,支持 StarRocks 可视化建表,创建表时可选择分桶、配置数据模型。目前版本持续更新,在修改 StarRocks 表结构方面进一步优化,大幅提升 StarRocks 表结构设计效率。当前 CloudDM 支持:

  • 可视化设计表
  • 查看索引
  • 筛选查看外部表

下面依次展示如何修改表结构、查看索引及区分外部表。

如何修改表结构

使用 CloudDM,添加完 StarRocks 数据源之后,右键需要修改的表,点击 设计表

修改表名

在结构设计器中选择 基本信息,可直接修改表名。

修改字段

在结构设计器中选择 ,然后选择一个存在的列,在右侧可以配置列的信息。

添加字段

在结构设计器中选择 ,然后点击 增加 按钮新建一个列,在右侧可以配置列的信息。

修改列名

CloudDM 个人版会识别 StarRocks 版本,对于 StarRocks 3.3 以上版本,允许修改列名。

如何查看索引

右键需要查看索引的表,点击 设计表,即可查看索引信息。

区分外部表

可单独筛选查看外部表。

总结

本文我们介绍了如何使用 CloudDM 可视化设计 StarRocks 表,以及区分外部表。感兴趣的话,欢迎试用。

CloudDM 接入主流 OA 系统,简化工单审批流程

· 阅读需 5 分钟
刘琳玉
刘琳玉

数据库数据管控平台在维护企业数据安全、数据库规范方面不可或缺,这一点毋庸置疑。但在实际使用数据库数据管理系统时,常常面临一个问题:工单审批流程集中在数据管理系统,然而并非所有员工都使用这个系统,导致审批困难、效率低下。当然,可以强制相关员工加入该系统,但这会增加时间及管理成本,并非最佳的解决方法。

实际上,大多数企业都有自己的协同办公系统,如钉钉、飞书等主流平台。这些平台集成了各类日常办公操作,如考勤、审批等,大大提升了办公效率。将企业 OA 系统接入数据库数据管理系统,既无需员工额外下载一个软件,又方便办公事务的集中管理,是简化工单审批流程的必行之道。

CloudDM 接入 OA 系统

CloudDM 是一款全自研数据库数据管控平台,专注企业组织数据安全。为提升用户体验,CloudDM 最近支持接入钉钉、飞书和企业微信三款 OA 系统,实现了 OA 系统与 CloudDM 的无缝衔接,让工单审批流程更加简便高效。

通常,将 OA 系统接入数据库数据管理软件,会出现各种各样的问题,如:

  • 网络出错,导致回调消息丢失,状态不同步。
  • 调用接口失败,但是无法定位问题根源。
  • 付费 API 过量使用,导致不必要的花费。

CloudDM 作为一款专为企业级用户设计的数据库数据管控软件,充分考虑了上述问题,并从用户的角度出发,设置了各种解决方案:

问题解决方案
API 网络异常在 API 调用过程中如遇网络错误,系统将自动记录相关信息,并安排在下一次执行重试。对于需要及时响应的操作,系统会向用户提供清晰的错误提示。
信息不同步网络波动可能导致消息不同步。CloudDM 将定期检查所有待审批工单的状态,通过调用接口获取最新的审批信息。这一检查频率可以在系统设置中调整。用户也可以在工单详情页面手动刷新,直接从 API 获取最新的状态更新。
模版被删除若尝试创建审批时发现模版已被删除,系统将自动把工单状态设置为失败,并在工单详情界面显示相应的错误信息。
其他异常对于其他类型的错误,如无法找到匹配的用户信息或系统异常等无法推进流程的错误,系统会明确提示错误原因,并将工单状态设置为失败,以避免不必要的 API 调用次数。

CloudDM 第三方审批流程特点

CloudDM 的第三方审批流程有两大特点:一致性便捷性

一致性: 无论是通过 CloudDM 内置的审批流程还是整合其他 OA 系统,用户的操作体验都是统一的,几乎感觉不到不同审批系统间的差异,极大地提升了操作的流畅性和效率。

便捷性: 用户只需进行简单的配置,即可在任一平台上发起审批流程。CloudDM 与外部 OA 系统都将实时同步最新的审批状态。用户无需在不同系统间切换,在一个平台上即可掌握审批进度。

如何接入外部 OA 系统

钉钉

请参考 接入钉钉审批,完成相关配置。配置成功后,可实现 CloudDM 与钉钉的无缝衔接。

  • 流程同步:CloudDM 与钉钉的审批页面实时同步审批流最新状态。

  • 快速跳转:在 CloudDM 点击 钉钉审批即可直接跳转到钉钉对应的审批单,方便用户进行催单等操作。

飞书

请参考 接入飞书审批,完成相关配置。配置成功后,可实现 CloudDM 与飞书的无缝衔接。

  • 流程同步:CloudDM 与飞书的审批页面实时同步审批流最新状态。

  • 快速跳转:在 CloudDM 点击 飞书审批即可直接跳转到飞书对应的审批单,方便用户进行催单等操作。

企业微信

请参考 接入企业微信,完成相关配置。配置成功后,可实现 CloudDM 与企业微信的无缝衔接。

  • 流程同步:CloudDM 与企业微信的审批页面实时同步审批流最新状态。

总结

使用数据库数据管理工具 CloudDM,轻松衔接企业 OA 系统审批流程,节约时间及管理成本,显著提升团队的开发协作效率。如果您对此感兴趣,欢迎免费体验产品。

CloudDM 升级全新 SQL 审核架构,适配多种数据源

· 阅读需 7 分钟
赵永春
赵永春

对于任何一款数据库管理工具,SQL 审核都占据重要地位,因为它直接关系到数据库的安全性和业务稳定性。通过 SQL 审核,可以有效发现并纠正 SQL 编写不当的问题,从而避免可能引发的数据库故障,如性能下降或数据泄露等严重后果‌。

CloudDM 是 ClouGence 公司推出的面向团队使用的数据库管理工具,支持云上、云下、多云多环境。目前支持 15 种数据源。未来更多数据源将逐步开放。对于 SQL 审核,CloudDM 提供了 59 个内置规则,并且 97% 以上规则同时适用于多种数据源。

支持的数据源内置查询规则内置脱敏规则
MySQL535
PostgreSQL355
Greenplum355
OceanBase for MySQL525
PolarDB-X415
TiDB495
阿里云 AnalyticDB MySQL 版395
阿里云 RDS for MySQL535
阿里云 RDS for PostgreSQL355
阿里云 PolarDB for MySQL535
阿里云 PolarDB-X415
亚马逊 AWS MySQL535
亚马逊 AWS PostgreSQL355
微软 Azure for MySQL535
微软 Azure for PostgreSQL355

CloudDM SQL 审核架构特点

CloudDM 的 SQL 审核架构具有三大特点:统一性、开放性、自由性

统一性,是指技术架构层面 CloudDM 会通过 SQL 解析器将 SQL 的特征抽取为特定的审核数据模型。无论何种数据源都遵循同一个原则并使用相同的审核数据模型。这样做有两个好处:

  • 最大化减少技术实现差异,保证 SQL 审核功能的稳定性。
  • 后续自定义规则时,降低学习门槛。

开放性,是指 CloudDM 中的所有规则,包括内置的众多规则,无一例外,全部通过其特有的 Rule Script 脚本来编写实现,并且所有内置规则的脚本全部 免费开源

CloudDM 不会藏有任何黑魔法。得益于 CloudDM 强大的 Rule Script 脚本引擎及统一的模型架构,所有规则都以高度透明的形式呈现出来。

自由性,是指用户可以利用 Rule Script 脚本自由编写符合自己需要的 SQL 规则,并将其应用到不同环境中。当内置规则不满足需求时,用户可以在此基础上自由改写。也正是由于所有内置规则的脚本全部 免费开源,用户才可以自由扩展、定制和改进。

SQL 审核架构全新升级

CloudDM 的 SQL 审核引擎架构在 Rule Script 脚本引擎审核数据模型 方面都做出了重大升级:

脚本引擎

上一代 SQL 审核架构的脚本引擎参考了 BASIC 语言并面向规则脚本开发而设计,脚本语言支持如下能力:

  • 程序逻辑控制:多条语句顺序执行IF 条件分支ELSEIF 多条件分支
  • 丰富的表达式运算符:算数运算比较运算位运算逻辑运算匹配运算(CloudDM 特有)。
  • 通用的类型系统:布尔数值字符串时间空值集合键值对。
  • 表达式运算:一元二元三元 表达式计算,还可以通过括号进行表达式提权。
  • 属性访问:可以通过 “.” 对多层对象进行属性访问,并且支持对数组下标、键值下标的访问。
  • 可以完整地表示 JSON 格式数据。
  • 支持隐式类型转换及通过 CAST 进行强制类型转换。
  • 可以调用自定义函数并传递参数。

新一代 SQL 审核架构对 复杂编程场景 进行了更深入的支持,具体如下:

  • 新增定义并使用 变量 的能力:通过变量可以在较为复杂的 SQL 检查程序中有效地提升代码结构。
  • 丰富表达式运算:支持 自增(++)自减(--) 运算。
  • 增强表达式处理能力:对 空值 的情况做了更深入的兼容和处理。
  • 重构类型跟踪机制,在新的机制下有效解决了对象访问中因类型跟踪异常导致的报错问题。

审核数据模型

上一代 SQL 审核架构的审核数据模型中,SQL 语句和审核数据模型之间呈现 “一对一” 的关系:

  • 从 SQL 解析器出发,一条 SQL 语句归属于一种类型。
  • 一种类型的 SQL 对应一个数据模型。
  • 在此基础上支持多种 SQL 语句,覆盖了 DDL、DML 中绝大部分情况。

新一代 SQL 审核架构中,SQL 语句和审核数据模型之间的 “一对一” 关系升级为 “一对多” 关系

上一代模型架构在处理复杂语句时会出现特征抽取不够完整的问题。虽然丰富模型属性可以解决此类问题,但这会破坏 统一性 原则,并且增加学习门槛。例如 “INSERT ... SELECT” 语句,在上一代架构中将其识别为 INSERT。部分 SELECT 的特征只能作为更加离散的几个特征属性值。如果通过增加属性来解决 SELECT 语句特征提取的问题,势必会造成数据模型之间的混乱。

新架构中使用 “一对多” 关系,可以将这类语句有效地解释为多个结果,解决了部分特征无法抽取的问题,甚至面对更为复杂的查询也可轻松应对。

同时新架构对于不同数据源可进行差异化的处理。例如 MySQL 表上独特的 engine 属性只会出现在 MySQL 专用模型上,不会影响通用表模型。

全新架构在未来的优势

新架构在模型结构化上更进一步,呈现更加清晰的数据结构。有了清晰的结构化数据将会带来诸多好处,例如:

  • 未来可以有机会为用户提供 Rule Script 语言 IDE 环境,并提供更加智能的代码编写补全能力。
  • 在未来基于模型的差异化可以使核心模型更加稳定,在产品迭代中使产品运行更加稳定。

使用 CloudDM SQL 审核

  1. 请参考官方文档 进行安装。
  2. 添加好数据源之后,点击 查询设置 > 安全规范 > 新建规范,新建一个安全规范。

新建的规范默认会启用所有内置规则,用户可以根据需要自由选择和配置。

  1. 点击 查询设置 > 查询配置,切换到环境选项卡。可以在启用安全规范时绑定新建的 安全规范。

  1. 点击 数据查询,进入查询控制台,执行 SQL 语句,例如:“select * from tb_mysql_types limit 20;”。CloudDM 可以对其语句进行检测,并做出相应的提示。

  1. 点击 查询设置 > 安全规范置 > 具体规范,在具体规范中搜索 “查询语句中的空条件” 可以找到这个规则。如果不需要这个规则,可以选择下面两种方式关闭这个规则。
    • 点击 禁用
    • 设置规则属性中的 allow 配置为 true(没有关闭规则,只是规则上允许空条件)。

总结

CloudDM 的 SQL 审核架构延续统一性、开放性、自由性的特点,在此基础上进行了重大技术升级,适配复杂编程场景及查询需求。如果您感觉本文有所收获,欢迎注册试用。

5 分钟用多种方式实现数据脱敏

· 阅读需 4 分钟
赵永春
赵永春

在数字化的今天,数据脱敏已成为保护数据隐私的重要手段。在《大数据时代,数据脱敏助力企业信息安全》一文中,我们介绍了数据脱敏的重要性,以及 CloudDM 数据脱敏的实现方式。本文将手把手教你如何使用 CloudDM 以多种方式实现数据脱敏。

数据脱敏方案概览

在数据脱敏之前,用户首先需要明确,对于不同类型的敏感数据,采取不同的脱敏方案。CloudDM 支持对值和整行数据脱敏,满足用户不同的脱敏需求。

  • 列脱敏:针对手机号等单个敏感数据,可整列脱敏。
脱敏前的数据脱敏后的数据
idphoneid
1199273843921
2198298317822
3189201928393
  • 数据识别脱敏:当数据符合某种条件时,脱敏该数据。
脱敏前的数据脱敏后的数据
namecommentname
小明up主真厉害小明
小绿好酷炫的操作小绿
小白就这,不如XX小白
  • 整行脱敏:针对安全级别较高的数据,可进行整行脱敏。
脱敏前的数据脱敏后的数据
infotimelevelinfo
吃了KFC10-1normal吃了KFC
吃了麦当劳10-2normal吃了麦当劳
做了很重要的事10-3high******

前提条件

用户的角色需要拥有 安全规则/规范管理、查询配置管理 权限,若无该权限,可参考 授权管理 进行授权。

  • 安全规则/规范管理:管理规则规范。
  • 查询配置管理:环境绑定安全规范。

操作步骤

选择脱敏规则

  1. 登录 CloudDM 平台。在上方导航栏点击 查询设置 > 安全规则,选择 脱敏规则 页签。
  2. 寻找需要使用的规则,详细内容可点击 详情 查看。

创建安全规范

  1. 在上方导航栏点击 查询设置 > 安全规范
  2. 页面右上角点击 新建规范。

  1. 输入规范名称后,点击 确认。

配置脱敏规则

  1. 选择一个安全规范,在操作栏点击 详情。

  1. 启用对应的脱敏规则。

  1. 配置规则。每个规则都可以设置其脱敏方式、参数以及生效范围。

    i. 点击操作栏中的 设置,配置脱敏方式:

    • 值:对于符合条件的数据,只脱敏该字段中的数据。

    • 整行:对于符合条件的数据,脱敏整行数据。

      ii. 在 一栏配置参数:设置脱敏规则参数,如下图则为设置需要脱敏的手机号号段。

      iii. 点击操作栏中的 范围。在范围配置页面右上角,点击 新建范围。生效范围支持多种匹配机制,并且能够精确到列级别。用户可以根据自己的业务需求,灵活配置规则的适用范围。

环境绑定规范

  1. 在上方导航栏点击 查询设置 > 查询配置
  2. 选择 环境 页签。

  1. 安全规范 一栏中点击按钮,并选择需要绑定的安全规范。

效果展示

总结

使用 CloudDM 数据库数据管理工具,轻松实现数据脱敏,为数据安全提供保障。如果感兴趣的话,欢迎免费试用。

大数据时代,数据脱敏助力企业信息安全

· 阅读需 5 分钟
赵永春
赵永春

大数据时代,数据已成为许多企业的重要资产与发展基石。然而,由于没有恰当的保护措施,企业内部员工泄漏数据的情况频频发生。有数据显示,在数据泄露事件中有 80% 为企业内部人员所为,快递、酒店、银行、房产中介、教育培训等各行各业无一幸免。这对数据库的使用管理提出了更高的要求。团队开发使用数据库时如何加强数据安全和隐私保护呢?数据脱敏提供了一种数据安全防护的新范式。

什么是数据脱敏

数据脱敏(Data Masking)是一种安全技术,用于保护敏感数据免遭未经授权的访问和泄露。它通过隐藏、加密、替换或修改存储在数据库、文件或其他存储系统中的敏感信息,降低数据的敏感度。数据脱敏有助于在开发、测试、培训或数据分析等环境中使用真实数据的副本,而不暴露实际的个人信息或商业秘密。

业内常用的数据脱敏主要有两种实现方式:

  • 指定列脱敏
  • 数据识别脱敏

指定列脱敏 是指用户设置需要脱敏的列,对整列的数据进行脱敏。这种方式只需要配置需要数据脱敏的表和字段,配置较为简单,但需要对每张表逐一配置,当表数量较大时容易遗漏个别表。

数据识别脱敏 是指用户配置脱敏规则,对查询出的数据进行分析,针对符合规则的数据进行脱敏。根据脱敏规则识别数据,灵活性更高,省去了遗漏敏感数据的烦恼,但开发脱敏规则有一定难度,且算法稳定性和脱敏性能难以保证。

CloudDM 数据脱敏

CloudDM 是一款全自研数据库数据管控平台,专注企业组织数据安全。针对大数据时代,数据隐私保护难的痛点问题,CloudDM 开发出了一套灵活、友好的数据脱敏解决方案——Rule Script 引擎。

CloudDM 自研的 Rule Script 引擎会自动识别出数据所在的库表、字段名称、数据内容等信息,通过 Rule Script 的 domain 对象进行校验,便可根据自身需求脱敏数据。

目前,Rule Script 内置了 5 种常用脱敏规则,用户无需花费大量时间开发规则脚本,即使是非专业开发人员也可以轻松实现 指定列脱敏数据识别脱敏。脱敏时还可以根据具体需要决定是脱敏 整行数据 还是脱敏 单个值。此外,针对特殊的业务需求,用户还可以自己编写脱敏规则,配置脱敏方式,即可对需要脱敏的内容脱敏。

CloudDM 脱敏引擎的优势

  • 自动化:基于脱敏规则,对表中数据进行解析、判断与脱敏。全程自动化,无需人为操作干预,脱敏过程无感知。
  • 可拓展性:用户可以根据自身业务需求识别敏感数据,并灵活配置脱敏规则。产品中内置了常见的脱敏规则,可满足大部分业务的脱敏需求。此外,用户可自定义脱敏规则。
  • 灵活性:用户可根据数据的敏感程度及业务具体需求,选择整行数据脱敏或值脱敏。
  • 可用性:数据库内原始敏感数据参与数据识别,仅在结果返回时才进行脱敏处理。

如何使用数据脱敏

  1. 梳理敏感数据:对于不同的业务内容、业务群体,敏感数据的定义会有所差别,因此,数据脱敏前,首先需要根据实际业务场景和安全维度,识别并梳理敏感数据。例如,在物流系统中,作为用户,敏感字段包括手机号、订单信息、收货地址等;在支付系统中,作为用户,敏感字段可能还涉支付订单、银行卡信息等。
  2. 确定脱敏方式:不同的数据可以采用不同的脱敏方式。对于特定的敏感字段,如手机号、地址等字段,可采取指定列脱敏的方式。而针对一些敏感内容,如档案系统中的工作单位等信息,可采用数据识别脱敏的方式。此外,对于安全级别高的数据可以进行整行脱敏,即对整条数据进行脱敏,确保信息绝对安全。对于手机号等单个敏感数据可以采用值脱敏,通过隐藏关键部分来保护个人隐私。
  3. 编写脱敏规则:明确上述信息后,可选择相应的内置脱敏规则,或根据需求自行编写脱敏规则,并配置生效。

自定义规则

启用规则

脱敏方式

生效范围

规则生效

总结

使用 CloudDM 数据库数据管理工具,轻松实现数据脱敏,为数据安全提供保障。如果感兴趣的话,欢迎免费试用。

如何实现良好的数据库结构规范?

· 阅读需 5 分钟
赵永春
赵永春

在团队协作开发过程中,开发人员想法、习惯各异,使用数据库时常常导致表结构不统一。如果长期使用不规范的表结构,可能会导致数据分析困难、执行速度下降、数据可视化困难等多种后果。‌这些问题普遍带有 滞后性隐蔽性 的特点,解决这些问题时又容易产生更多连带风险。因此,规范化的表结构设计对于业务发展至关重要。

表结构不规范的影响

数据分析困难

表结构不规范,将会大大增加数据分析师处理数据时的难度。例如,相同含义字段名称不统一,又缺乏相应的元信息备注,导致后续分析数据时,还需要消耗大量时间梳理数据关系。

【场景 1】根据以下购物系统的订单表做数据分析:

CREATE TABLE  (
...
cost DECIMAL(15, 2) ,
...
);

当我们尝试进行数据分析时,会发现 cost 字段没有设置禁止为空,也没有任何注释。开发人员在编写代码时,对于支付金额为 0 的订单可能会设置为 null 或 0。当我们发现一个订单的 cost 为 null 或者 0 时,可能是顾客使用优惠卷/红包后,支付金额为 0,或是赠品订单。而由于没有注释,在数据分析时难以对该字段的数据进行准确分析。

执行速度下降

不合理的表结构设计可能导致数据库查询执行速度下降。例如,某些查询语句的执行计划看似相同,但由于表结构的不合理设计,实际执行效果相差很大,导致查询速度变慢,而这个问题往往在数据量变大之后才会凸显出来。

【场景 2】 以下 SaaS 系统的 user 表记录了用户信息,所有用户都关联到一个主账号上。

CREATE TABLE sales_data (
id INT AUTO_INCREMENT PRIMARY KEY,
...
parent_id varchar(64)
...
);

在团队管理中,当查询当前团队的成员时,需要使用 parent_id 作为过滤条件去查询。因为 parent_id 没有设置索引,在查询时需要进行全表扫描,导致执行速度大幅下降。

数据可视化困难

原本不为空的字段列,由于缺少表结构约束,导致意外录入脏数据,进而在数据可视化结果呈现上产生误导,甚至还会影响用户对数据的准确理解。‌最直接的问题就是 “空字符串” 和 “空值” 之间的差别难以有效界定。

【场景 3】根据以下记账软件的开支表分析收支情况。

CREATE TABLE expenditure (
...
price decimal not null,
type ENUM('IN','OUT') NULL
...
);

当我们想对本年的收支情况进行分析时,因为该表 type 字段粒度太大,只能分析支出和收入两种类型,若想更加细致地分析在某些方面的支出,则无能为力了。

从上述例子中可以看出,数据库结构不规范,会对开发和数据分析形成重重阻碍。如果在创建表时就注意规范表结构,就可以有效避免上述情况的发生。

解决方案

本文提供以下方案,供读者参考比较。

  1. 关键字匹配:直接使用关键字对 DDL 语句进行判断。
  • 优点:实现简单。
  • 缺点:很容易通过各种方式绕开。
  1. SQL 审核:普通用户执行 DDL 语句时需要提交给审核人员审核,通过后再由审核人员执行。
  • 优点:审核人员可以浏览到所有 SQL,进行统一把控。
  • 缺点:不同审核人员风格不同,并且审核人员一般是团队中的领导者,需要付出额外的精力。人工审核,也有概率漏过一些不符合标准的 DDL。
  1. SQL 审核平台:通过 SQL 审核平台的校验规则,加上审核人员的最终把控,对将要执行的 SQL 进行高效监管,并且有历史记录查询、回滚 SQL 等多种功能满足团队需求。
  • 优点:通过脚本校验 SQL,用户只需开启脚本便可检查 SQL 是否满足规范。审核人员只需要检查 SQL 是否符合业务需求即可。此外还有其他功能满足用户各种需求。
  • 缺点:SQL 解析复杂,实现难度大。大部分平台只有常用规则,但无法自定义规则,无法满足用户个性化的需求。

推荐方案

根据上述的方案比较,不难看出 SQL 审核平台 是比较便捷安全的方案,校验准确,省时省力,并且可以满足多样的需求。国产自研的数据库数据管控工具 CloudDM Team 便是一个合适的选择。

CloudDM Team 采用了全新的自研 Rule Script 引擎。通过 Rule Script 强大的编程能力,CloudDM Team 的所有内置规则全部实现了脚本化。此外,用户能够根据自己的需求自定义规则。

内置规则

自定义规则

规则生效

总结

使用 CloudDM 这样的数据库数据管理工具,轻松实现良好的数据库结构规范,为团队开发协作提质增效。

如何解决团队访问数据库的 3 个致命问题?

· 阅读需 13 分钟
赵永春
赵永春

面临的问题

在开发过程中避免不了需要访问数据库数据,尤其在团队协作中对于数据库数据的访问会更加频繁。

通常团队成员在管理员或者 DBA 在准备好数据源之后,就可以凭借数据库的账号和密码访问数据库中的数据了。

也正是从这一刻开始,这个团队访问数据库中的数据时就会面临诸多问题,本文枚举其中几个比较典型的问题:

  • 团队成员在设计数据库表结构容易产生随意性,导致数据库结构规范不统一。
  • 容易忽略账号和权限的管控,导致数据库访问缺失权限控制。
  • 数据库的变更的发布在需要多个团队成员通过流程化的方式相互协作,如果协作过程不顺畅则会降低团队效率。

问题的严重性

如果这些问题没有被妥善处理好都会产生哪些影响呢?接下来我们举几个案例。

数据库结构规范不统一

‌表结构不规范会导致多种后果,包括数据分析困难、执行速度下降、以及数据可视化困难。‌这些问题普遍带有 滞后性隐蔽性 特点,当解决这些问题时又容易产生更多连带风险。

  • 数据分析困难‌:表结构不规范可能导致数据分析师在处理数据时遇到困难。例如,相同含义字段名称不统一,又缺乏相应的元信息备注。导致后续分析数据时还需要消耗大量时间精力对数据关系进行梳理。
  • 执行速度下降‌:不合理的表结构设计可能导致数据库查询执行速度下降。例如,某些查询语句的执行计划看似相同,但由于表结构的不合理设计,实际执行效果相差很大导致查询速度变慢。而这个问题往往在数据量变大之后才会凸显出来。
  • 数据可视化困难‌:原本不为空的字段列由于表结构约束缺失导致脏数据被意外录入,进而在数据可视化结果呈现上产生误导,甚至还会影响用户对数据的准确理解。‌最直观的问题就是 “空字符串” 和 “空值” 之间的差别难以被有效界定。

综上所述,表结构不规范产生的不仅会增加数据分析的难度,降低数据库查询的执行速度,还会影响数据可视化的效果和质量。因此,规范化的表结构设计对于业务演进至关重要。

数据库访问缺失权限控制

数据库访问缺失权限控制的危害会比较严重,主要体现在以下几个方面:

  • 敏感数据泄露更显:由于数据库访问权限的缺失容易让未经授权的用户访问到敏感数据。如,用户个人信息、财务数据等‌。当这些具有高度敏感性的数据被泄漏出去后,会造成更大的灾害。例如,被不法分子用于诈骗。以及错失优质商业机会等。
  • 数据篡改风险‌:攻击者可能通过越权访问修改数据库中的数据,通过篡改数据谋取私利或者对整个业务运行造成严重影响。如,修改账户余额,删库跑路等‌。
  • 法律责任与声誉损害‌:由于缺乏权限控制导致用户敏感数据被泄露进而个人隐私被侵犯‌。企业可能临法律责任,同时企业的声誉也将受损。

综上所述,数据库访问缺失权限控制会带来更加严重安全风险和法律后果。所以团队中对于数据库数据的访问必须实施严格的访问控制和权限管理‌,以避免法律风险以及声誉影响。

协作过程不顺畅

协作过程不顺畅最主要的影响是团队效率,主要包括:

  • 系统稳定性受损‌:协作不畅可能导致数据库变更过程中出现错误或遗漏,进而影响系统的稳定性和可靠性,增加系统崩溃的风险‌。
  • 数据安全性问题‌:协作不顺畅还可能引发数据安全性问题,如数据丢失或泄露,对组织造成重大损失‌。
  • 团队资源浪费‌:不顺畅的协作可能导致不必要的重复工作或错误操作,浪费人力和时间资源‌。

综上所述,数据库变更协作不顺畅会对系统稳定性、‌数据安全性、团队资源利用等多方面造成不良影响。进而使团队的效率变得更加底下。

解决问题的手段

这些问题在业内通常有着比较明确的解决思路,核心思想是通过团队化的工具将数据库的访问集中到统一平台上进行。并通过统一平台达成如下几个关键控制手段:

  • 通过SQL规则校验,拒绝不合理的数据库结构变更。从而保证数据库规范。
  • 集中权限控制,方便一目了然的管理和控制。
  • 避免直接连接数据库,保护数据库账号。
  • 对查询结果进行脱敏保护,从而避免避免数据隐私及法律风险。
  • 通过工单流程提升团队协作效率。
  • 通过企业统一认证,让团队的账号管理变得更加轻松和简单。

目前能够提供上述问题解决方案的产品有很多这里就不再展开。

CloudDM Team 作为全新的企业级数据库数据访问工具,在团队使用场景中做了更加细致和深入的思考。自然也包含上述问题。

规则校验

使用脚本化方式实现 SQL 规则校验是一个比较常见的方法,常见的方案中有两种技术路线。

  • 使用已有语言 JavaJavaScriptLuaGroovy 作为规则引擎。
  • 使用具有较高限制的自研 DSL 作为规则引擎。

使用已有语言通常会面临两个问题:

  • 程序如何接入?
  • 安全如何控制?

在采用通用编程语言作为规则引擎后,安全控制是最难以解决的。这是由于通用编程语言通常是面向更加广泛而又复杂的场景,需要提供更加灵活和底层的 API 作为保障。比如不受限制的访问网络、文件等资源。

如果采用通用编程语言作为引擎,虽然可以快速满足需求并节省开发成本。但需要在安全控制上做更加深入的控制,本文列出一些用于思考:

  • 网络:通常 SQL 规则脚本中是用来承担逻辑判断并不需要网络通信,因此网络能力通常是不必要的。
  • 文件:理由同上
  • CPU/内存:这两类资源具有高度相似性,都是难以被控制。例如:规则脚本出现一个死循环,通常作为脚本宿主程序是无法主动干预的。
  • 调动外部程序:这和网络、文件、比较相像。原则上规则脚本的执行是不能调用外部程序的。
  • 其它技术组件导致的安全漏洞:常见的如 OGNL 表达式的越权访问。

如果采用使用场景更加明确的自研 DSL 作为规则引擎,通常不会出现上述问题。因此普遍情况下只要技术投入成本可以接受都会选择此类技术方案,其主要优点是在于可控性较高。

CloudDM Team 采用了全新的自研 Rule Script 引擎,并通过 Rule Script 强大的编程能力使得 CloudDM Team 的所有内置规则实现了全部脚本化。这包括 SQL 规则和脱敏规则。下面这张图向大家展示了基于 Rule Script 的在 CloudDM Team 中的样貌。

SQL 查询规则展示

查询规则展示

权限控制

使用团队化的工具将数据库的访问集中到统一平台,天然的好处是可以避免直接连接数据库以保护数据库账号。而在权限控制方面,一个团队化的数据库访问工具必然会面临来自两个新维度上的要求:

  • 功能上的权限控制
  • 资源上的权限控制

在工程实践过程中权限系统的设计会受到诸多因素的影响,比较常见的权限控制模型和特点有:

  • IBAC/ACL,基于身份的访问控制。核心思想是为资源制定一个 策略列表,当访问资源时通过策略列表来保护资源的访问。
  • RBAC,基于角色的访问控制。模型核心定义了 用户角色权限 三个元素,在软件产品的功能控制中具有较为普遍的应用,它是一个静态模型。
  • PBAC,基于策略的访问控制,相比较 RBAC 模型而言 PBAC 动态基于规则和策略动态确定访问权限。它属于动态模型。
  • ABAC,基于属性的访问控制,模型重点在于对属性的策略化运用。角色策略身份 在 ABAC 模型中都是属性中的一种,ABAC 和 PBAC 某种程度上来看比较相似。而 ABAC 最大的弊端就是在于它的复杂性,在落地 ABAC 时某些情况下甚至需要借助 XACML 语言脚本来实现权限控制。

为了方便理解我们以 “资源是否具备某个权限的访问权限” 为典型内在需求。以 用户角色策略 为支点,对已知的权限模型做一个梳理可以做如下总结:

  • 当选择 策略权限用户 三角关系作为权限访问控制三要素时,便是 ACL/IBAC 模型。
    • 当某个资源被访问只需要执行一遍策略规则即可得到权限,这便是最简单的 ACL(Access Control Lists)
    • 将用户/资源 进行 标识符 归类,在利用 ACL 对 标识 的用户资源进行访问控制,这便是 IBAC(Identity-Based Access Control)
  • 使用 角色、用户、权限 三角关系作为权限访问控制三要素便是最常见的 RBAC 模型。
    • RBAC(Role-Based Access Control)是一种基于静态状态下的权限控制模型,同时也是用途最为广泛的权限控制模型。
    • RBAC 的运用非常考验角色的设计者,角色的粒度过细容易造成特权泛滥。粒度过粗又会导致拆分角色而造成角色爆炸。
  • 使用 策略、权限 关系时便是 PBAC 模型,该模型的最大特点是着重基于策略的访问控制。
    • PBAC(Policy-Based Access Control)它通过定义策略来管理访问控制,这些策略可以根据需要进行定制。
    • 动态的访问控制是 PBAC 模型的核心关键,在实施 PBAC 时往往需要附带 审计 记录以方便事后查阅。
  • ABAC(Attribute-Based Access Control) 它基于属性进行访问控制。在模型中访问决策不仅基于用户角色。
    • ABAC 访问控制机制根据主体属性、对象属性、环境参数、操作、策略对该请求进行授权验证,具有更高的灵活性。
    • ABAC 在一定程度上和 PBAC 具有相似性。
    • 在 ABAC 看来 RBAC 中的角色、IBAC 中的标识符都是一种属性。
    • 在 ABAC 模型体系中有很多实现或者标准比如:XACMLNGACLBAC

在实际工程实践中可以选用的权限控制模型可能还会更多。具体如何选择需要基于客观因素来决定,不能一概而论那种模型更好。而在具体落地过程中往往参考上述标准模型也会产生更多的变种和新特性。

CloudDM Team 在实践权限控制的过程中采用了多种模型结合方式:

  • 通过 RBAC 模型作为功能权限的访问控制。因此 CloudDM Team 可以定义角色、用户,并且可以为不同角色绑定权限。
  • 通过 IBAC 对具体数据库资源进行访问控制。目前支持对实例级资源进行细粒度 ACL 控制。

工单流程

在使用团队化数据库访问工具时工单流程是一个比较常见的场景,一个典型的用户场景是:

  • 开发递交了 SQL 发布流程。
  • DBA/管理员或各层级管理人员会执行流程审批。
  • 在流程通过后完成最终 SQL 的执行。

在专业的领域中一般由 OA 系统可以完成上述动作。而在 OA 出现之前,办公室解决流程化问题往往是填写各种申请表。然后在各级领导/负责人、部门之间流转这些申请单。对于数据库变更的审核往往更加难以管理通常交给更加专业的 DBA 负责数据库的变更操作。

一个 OA 系统面临的主要问题是如何方便的定义表单以及流转表单。所以在技术上 OA 系统通常包括如下核心技术:

  • 表单设计器
  • 工作流引擎
  • 用户/组织管理

表单系统主要解决的问题是表单的设计以及表单数据的存储/提取。在早年一个很好的可视化 HTML 设计器可以解决大部分问题,而如今已经有更多可用的方案可以被选择。

  • 表单系统的最大难度是在于提供可供交互的类 HTML 设计器,并允许终端用户自由的设计表单的样式。这些用户往往对于计算机原理了解并不深入。
  • 早年比较常见的方案是基于 Eclipse 开发一个工作流设计平台,其核心原理是对 Eclipse Web Developer Tools 的二次开发提供表单设计器。
  • OA 系统将表单设计器产生的数据进行存储,在需要时按照设计器设计的样式重新展现并填充具体数据。

流程引擎,解决的主要问题是提供一个统一的模式让企业可以设计自己的流程。

  • 在流程设计中比较典型的场景有:加签、会签、顺序流程、子流程、并行流程等。
  • 在工作流领域也存在很多成熟的解决方案如:ActivitiFlowablejBPM 本文不在详细展开。

CloudDM Team 在工单流程的设计上简化了技术负担,其核心只关注审批的 发起 和审批结果。让外部 OA 系统以更加专业的角度来负责工单流转工作,这样做可以获得以下好处:

  • 专业的事情专业系统来负责,减轻技术负担、提升整个系统稳定性。
  • 可以接入用户已有 OA 系统,从而和用户的 IT 系统结合更加紧密。

总结

本文提出了团队使用数据库面临的问题以及问题的后果,介绍了行业中解决问题的常用手段,及 CloudDM Team 在众多产品中的独特优势。如果您感觉本文有所收获,欢迎注册试用。

Latest blog posts

Back to blogarrow-right
强强联合|CloudDM 与达梦数据库完成产品兼容互认证
Announcement

强强联合|CloudDM 与达梦数据库完成产品兼容互认证

CloudDM 与达梦数据库正式完成产品兼容互认证

刘琳玉
刘琳玉
Jul 19, 2025
使用 CloudDM 可视化操作 MySQL
Tutorials

使用 CloudDM 可视化操作 MySQL

本文展示了如何使用可视化工具 CloudDM 个人版管理和操作 MySQL 数据库和数据表

赵永春
赵永春
Jun 14, 2025
使用 CloudDM 和钉钉流程化管理数据库变更审批
Tutorials

使用 CloudDM 和钉钉流程化管理数据库变更审批

CloudDM 接入钉钉,支持实时通知与移动办公,满足广大企业用户的实际需求。

刘琳玉
刘琳玉
Jun 8, 2025