

随着数据库 DevOps 的快速发展,应用程序开发人员和 DBA 都加入到数据库变更管理 (https://www.bytebase.com/blog/what-is-database-change-management) 的工作中。其中,应用程序开发人员负责编写 SQL 脚本完成具体业务的数据库变更和查看查询结果。DBA 则通过制定规则策略,管理资源权限,并协同应用程序开发人员完成数据库变更,来保证数据库规范、安全和高效地运行。众所周知,SQL 客户端是运行 SQL 语句和数据库管理命令的重要工具。与经典的 SQL 工具相比(例如 CLI, Navicat),适用于数据库 DevOps 团队的 SQL 编辑器应具有以下特性:
Bytebase 1.9.1 发布了新一代 SQL 编辑器:https://www.bytebase.com/docs/sql-editor/overview,具有以下特色功能:管理员模式:Bytebase 在 SQL 编辑器中提供管理模式,允许 DBA 执行数据库管理命令,可以替代标准的 database 命令行客户端。
基于数据库的访问控制:开发者无权限在 SQL 编辑器查询受保护环境中的数据库。但 DBA 可以配置数据库白名单,授予开发者查询权限。
数据脱敏:开发者在 SQL 编辑器中查询数据时,敏感列的查询结果将被匿名化处理。它适用于所有查询类型,例如子查询、JOIN、公用表表达式(CTE)。
基于角色的变更语句管控:开发者对指定数据库发起 DDL 或 DML 变更将自动触发审核流程。
审计日志:Bytebase 审计日志记录了在 SQL 编辑器中执行过的所有查询。
协同工作表:DBA 和开发人员可以将编写的 SQL 语句保存为工作表,并共享给团队成员。除此之外,该版本支持将上传的 SQL 脚本(单个文件不超过 100M)保存为工作表,以便在工单中使用。
- 良好的用户体验:该版本不仅提供了全新交互体验,还优化了代码自动补全功能。
当用户想直连到数据库运行管理命令时,以 DBA 账户登录后,可在 SQL 编辑器管理员模式下执行此数据库管理命令,如下图所示。查看文档 Admin Mode: https://www.bytebase.com/docs/sql-editor/admin-mode 了解管理员模式。当用户需要向开发者开放生产环境中部分数据库的访问权限时,以 DBA 的账户登录后,将生产环境标记为受保护的环境并配置数据访问白名单即可。浏览文档 Database Access Control: https://www.bytebase.com/docs/administration/database-access-control 了解数据库访问控制功能。当开发人员在 SQL 编辑器中查询包含敏感列的表时,这些列的查询结果将被脱敏显示为 “******”。查看文档 Anonymize Data: https://www.bytebase.com/docs/administration/anonymize-data 了解配置的详细信息。当开发者在 SQL 编辑中执行 DDL 或 DML 时,系统会引导用户创建对应 DDL 或 DML 工单,根据配置的审批策略执行变更。如下图所示,开发者在 SQL 编辑器中运行 DDL 语句,系统会弹窗引导用户创建工单。DBA 通过审计日志查看在 SQL 编辑器中执行过所有命令。查看文档 Audit Log: https://www.bytebase.com/docs/administration/audit-log 了解审计日志功能。对于常用的 SQL语句,可以将它们保存为工作表,给团队建立一个公共的 SQL 脚本库。对于大 SQL 脚本(最大 100M),可以将它们上传后保存为工作表,在进行数据库变更时使用(下图)。具体可参考文档 Manage SQL Scripts with Sheet: https://www.bytebase.com/docs/sql-editor/manage-sql-scripts。
Bytebase 现已支持 MySQL, PostgreSQL, TiDB, ClickHouse, Snowflake 以及 MongoDB 数据库,将其实例添加到 Bytebase 后,即可使用 Bytebase SQL 编辑器实现:数据库管理命令运行管控
数据查询脱敏(暂仅支持 MySQL)
数据库访问权限控制,基于角色变更管控
常用 SQL 脚本保存与分享
查看 SQL Editor 文档:https://www.bytebase.com/docs/sql-editor/overview 了解更多,使用过程中遇到任何问题或需求,欢迎加入 Bytebase 用户群反馈交流。ଘ(੭ˊᵕˋ)੭

