数据库DevOps:我们如何提供安全、稳定、高效的研发全自助数据库服务-iDB/DMS企业版

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 阿里云数据管理DMS 企业版已于2017.7.18正式发布,一期我们提供MySQL、ORACLE、SQLServer、PostgreSQL、Mongo这几种数据库类型的数据管理服务,支持RDS、ECS自建、其他公网自建类型,支持经典网络、VPC网络,提供实例管理、用户管理、任务管理、安全规则、操作审计、权限管理、数据查询、数据变更/数据订正、数据导出、库表同步、SQL审核/sqlreview等功能。

数据管理DMS企业版地址: https://dms.aliyun.com/

阿里云数据管理DMS 企业版已于2017.7.18正式发布,一期我们提供 MySQL、ORACLE、SQLServer、PostgreSQL、Mongo这几种数据库类型的数据管理服务,支持RDS、ECS自建、其他公网自建类型,支持经典网络、VPC网络,提供实例管理、用户管理、任务管理、安全规则、操作审计、权限管理、数据查询、数据变更/数据订正、数据导出、库表同步、SQL审核/sqlreview等功能。


DMS企业版在集团内部产品代号为iDB,是阿里巴巴集团从2010年开始逐步积累迭代出来的研发全自助数据库服务平台。
      从最初解决数据安全访问诞生一个简单的查询页面(2011,iDB1.0时代-提升数据安全),到解决变更在线提交、满足既定设计规范的研发全自助线下表结构设计(2012,iDB2.0时代-解决变更在线化),再到sqlreview、研发有限自助变更线上、DMS个人版的上线(2013-2015,iDB3.0时代-提升研发效率),再到规则引擎、工作流引擎、任务调度引擎、CloudDBA、研发全自助变更(2016,iDB4.0时代-灵活、智能管控最大化提升研发效率);
      iDB在阿里内部不断完善,服务于内部几万用户每天各种各样的数据库研发使用的同时;2017年产品提出正式云化为云上广大中小企业提供成熟的企业数据库管理服务。

我们的目标是:
  • 赋能研发全自助的数据库研发设计能力,提升企业的研发效率(不再因为集中管控人员瓶颈导致项目延期);在满足既定规范内全自助设计与变更,同时辅助CloudDBA性能诊断与优化让研发主动优化改造问题SQL、回收碎片空间、建立合适索引、删除无效索引提升研发的数据库专业技能
  • 解放传统DBA的人肉操作,使其可以将精力转向诸如数据库架构设计等领域深挖;管理员、DBA轻松管理全局,只需要事先制定研发设计规范、研发流程即可轻松管理大批量实例的使用
  • 数据分级、权限管控、操作审计、安全规则、访问IP白名单等一系列解决方案进一步提升企业的数据安全

以下是产品内部分主要功能的详细讲解介绍:

普通使用

  • 权限管理
    • 支持库、表、列三种对象粒度申请,列是指表上打标为敏感或机密的字段(即数据分级管控)
      • 库权限包含有库下所有表含后续新增表的非敏感机密字段的权限
      • 表权限仅包含表上非敏感机密字段的权限
      • 权限申请对应的审批流程由管理员、DBA在【安全规则】按需实例级别进行指定配置
    • 支持查询、导出、变更三种权限类型申请
      • 导出、变更,是指可以提交对应的工单;并非直接执行对应操作
    • 支持指定有效期,到期自动失效
    • 数据owner可以随时查看对应库、表的权限开通情况进行回收或者追加授权
    • 申请者本人也可以随时查看所开通权限情况进行主动释放或者续期申请
  • 数据查询 
    • 开通“查询”权限后可以进行对应库、表的结构、数据等进行查询
      • 全局单次查询返回行数有上限限制(默认200,由管理员按需调整;但不建议过大,过大可能会造成页面卡顿)
      • 每人每天查询返回行数有上限限制(默认20000,由管理员按需调整)
      • 每人每天查询次数有上限限制(默认2000,由管理员按需调整)
      • 实例级别可指定查询超时时间(默认60,由管理员、DBA按需调整)
      • 全局禁止大表全表扫描查询(默认10G,由管理员按需调整)
      • 允许执行的SQL类型由管理员、DBA在【安全规则】按需实例级别进行指定配置
    • 查询已经显示在页面的结果可导出excel、txt或insert脚本格式
    • 逻辑库下对逻辑表配置路由算法可自动路由查询返回结果
  • 数据变更/数据订正
    • 开通“变更”权限后可以进行对应库、表的结构与数据等进行变更
      • 工单提交时
        • 会校验语法正确性(不正确则阻断不能提交)
        • 会校验影响行数(可以与预期影响行数进行对比,不一致场景要注意SQL逻辑是否正确书写)
      • 工单执行时
        • 支持立即执行、指定时间执行(定时调度)
        • 支持工单级别开启事务(不开启默认串行执行,遇到失败则终止不回滚;开启则遇到失败会全部回滚)
        • 支持备份(默认开启,对update、delete语句影响的整行记录进行insert脚本的全备;如果变更不符合预期时可快速download附件进行恢复操作)
      • 允许执行的SQL类型、不同需求对应工单的审批流程由管理员、DBA在【安全规则】按需实例级别进行指定配置
    • 安全管控
      • 串行调度:多人同时发起同一个实例的不同变更需求时,串行调度避免任务造成过大负载影响业务正常运行
      • 并发检测:执行任务前会探测目标实例的繁忙程度,活跃会话超过指定阀值则退出休眠5秒再重新尝试;重试5次仍然繁忙则退出失败
      • 执行间隔:每个SQL执行完根据SQL类型以及影响行数进行对应的间隔再调度下一条SQL,防止主备复制延迟
      • 锁检测:在执行DDL语句时还会额外检测元数据锁,设置获取等待时长超过则重试直至获取到才执行DDL语句;重试5次仍然繁忙则退出失败
  • 数据导出
    • 开通“导出”权限后可以进行对应库、表的数据等进行导出
      • 工单提交时
        • 会校验语法正确性,仅支持select(不正确则阻断不能提交)
        • 会校验影响行数(可以与预期影响行数进行对比,不一致场景要注意SQL逻辑是否正确书写)
      • 工单执行时
        • 可选择excel、csv、insert脚本三种格式
        • 默认按照数据库字符集导出,部分场景库表字符集不一致可以指定表的字符集避免乱码
        • 审批通过后24小时内要完成导出,24小时内可反复导出
        • 导出成功后可直接下载最后一次成功的结果集(下载文件距离最后一次导出时间必须是一个月内)
      • 不同需求对应工单的审批流程由管理员、DBA在【安全规则】按需实例级别进行指定配置
  • 库表同步
    • 开通源库的“查询”权限、目标库的“变更”权限后可以进行对应源库与目标库表结构的对比与同步
    • 支持结构同步、空库初始化、表一致性修复三种常见场景
      • 结构同步:源库表、目标库表,对比进行新建表或者修改表达到与源库表一致结构(表数量1:1对应)
        • 适用于测试环境变更同步到其他环境,如生产环境发布等
      • 空库初始化:将源库表结构完整拷贝至目标库
        • 适用于多套环境的搭建,如测试环境搭建等
      • 表一致性修复:将源库表、目标苦逼,对比进行新建表或者修改表达到与源库表一致结构(表数量1:N对应)
        • 适用于分库分表场景下,分表结构一致性的保障check
    • 不同需求对应工单的审批流程由管理员、DBA在【安全规则】按需实例级别进行指定配置
  • SQL审核/sqlreview
    • 开通“查询”权限后可以进行对应库表代码内增删改查访问SQL进行审核
      • 审核的是增删改查的SQL,非DDL语句
      • 主要审核SQL语法书写是否正确、合规
        • 不通过场景:存在`select * `、动态SQL、SQL注入写法
        • 通过场景:SQL语法正确并且执行计划可以走上索引、执行计划走不上索引(会主动建议添加合适的索引,确保每个经过审核后上线的SQL都能有索引可走)
      • java语言:支持Ibatis、Mybatis两种格式的附件
      • 其他语言:需要将代码中的增删改查SQL按照模板整理后提交附件
      • 不同需求对应工单的审批流程由管理员、DBA在【安全规则】按需实例级别进行指定配置
    • 属于应用发布前的事前管控,限制选择的数据库是非生产环境(测试阶段结构已经变更,但线上结构是发布后才变更的)

系统管理

  • 实例管理
    • 目前支持类型
      • 支持MySQL、ORACLE、SQLServer、PostgreSQL、Mongo几种数据库类型
      • 支持RDS、ECS自建数据库、其他公网自建数据库
      • 支持经典网络、VPC网络
    • 实例级别灵活设置进行管理:查询超时时间、导出超时时间、运维负责人/DBA、【安全规则】
    • 默认会在注册时自动采集实例上schema、表、字段、索引等相关元数据提供普通使用的权限管理及数据分级依据,也可以主动触发增量的同步
    • 对于不需要使用的实例可以进行禁用或者删除:如大促期间禁用某个实例避免非生产服务压力
    • 在授权后,可以自动同步当前账号下购买的rds实例列表;但正式使用需要完善相关信息测试账号可用后进行保存
    • 与所有传统工具不一样,管理员一次录入后所有用户通过产品内各模块权限管控访问数据库表;所有用户不再接触数据库账号密码,即使人员流动账号也没有频繁修改更新的烦恼
  •  用户管理
    • 目前支持阿里云平行账号、主子账号两种形式
    • 对于主子账号,在主账号作为管路员时可以一键同步所有关联的子账号
    • 对于不需要使用的账号可以“禁用”
  • 任务管理
    • 所有从普通使用各个模块产生的变更SQL任务均会记录在此模块
    • 管理员、DBA也可以直接对目标库表进行SQL变更(DML、DDL)任务的部署,区别在工单提交有对应流程审核管控;后台部署因为人员有限可控所以无流程管控
    • 任务的执行的安全管控策略,同【数据变更/数据订正】的“安全管控”一致
  • 安全规则
    • 由审批节点、审批流程线、安全规则依次组成
      • 审批节点:默认的有管理员、DBA(跟随实例走)、数据owner(跟随数据库、表走)三个节点,其他可以按需自定义;如安全管理员、测试负责人、研发负责人等
      • 审批流程线:默认有5个组合好的流程线,单向逐一通过处理;同一个节点多个人时任意一个审批通过即通过
      • 安全规则:默认有3个组合好的安全规则,高、中、低;可以按照业务实际需要组合新的安全规则或调整已有规则的审批流程达到根据不同的业务重要程度及所处阶段灵活管控不同的变更需求
      • 81136847bba10f37ae7cfeb5e03eaa06fbf014b2
  • 操作审计
    • 平台上产生的所有用户操作都会详细记录,管理员可以便捷的查看、溯源
      • 某个用户某段时间做了哪些操作、针对某个模块做了哪些操作等
      • 某个数据库、表,在某段时间被做了哪些操作、在某个模块内做了哪些操作等
  • 访问IP白名单
    • 对于每个企业都是独立的一套企业版部署,管理员在加入企业的员工、企业的数据库后,可以决定是否开启访问IP白名单限制
      • 限制:仅在指定的服务器ip发出的请求才能登录使用DMS企业版,对于企业宽带运营商有固定的ip出口,可由管理员进行配置
    • 在访问安全上DMS企业版做了四层管控:
      • 1)阿里云账号、密码正确性校验
      • 2)DMS企业版对应本企业员工校验:确保本企业员工才可使用
      • 3)DMS企业版访问IP白名单校验:确保办公网内才可使用(规避员工流失未及时清理禁用账号的潜在风险、员工账号被外部非法盗用的潜在风险)
      • 4)目标库表操作权限的校验(产品内体系化保障,规避员工接触数据库账号密码要频繁变更维护的风险与投入)

在以上这些主要功能之外,我们也提供如owner管理、代码生成器、配置管理、我的SQL、逻辑库逻辑表等诸多功能服务。


入口:
     数据管理DMS企业版地址: https://dms.aliyun.com/



相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
相关文章
|
4月前
|
SQL 数据库 微服务
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
|
19天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
64 3
|
19天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
61 2
|
1月前
|
存储 NoSQL MongoDB
基于阿里云数据库MongoDB版,微财数科“又快又稳”服务超7000万客户
选择MongoDB主要基于其灵活的数据模型、高性能、高可用性、可扩展性、安全性和强大的分析能力。
|
1月前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
55 2
|
21天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
46 0
|
2月前
|
SQL JavaScript 关系型数据库
Node服务连接Mysql数据库
本文介绍了如何在Node服务中连接MySQL数据库,并实现心跳包连接机制。
43 0
Node服务连接Mysql数据库
|
1月前
|
数据采集 安全 数据管理
通信行业数据治理:如何实现高效、安全的数据管理?
在未来的发展中,通信行业的企业应加强数据治理意识,提高数据治理能力;同时,积极开展跨行业的合作创新,共同推动行业的繁荣与发展。相信在不久的将来,通信行业将迎来更加美好的明天。
|
3月前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
71 0
|
4月前
|
SQL 运维 安全
数据管理DMS操作报错合集之如何解决在安全协同模式中遇到报错:在安全规则中没有找到这个ID
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。