本文带你体验 Bytebase 中 SQL 编辑器中对于开发者的只读模式 (Read-Only Mode) 以及对于 DBA 的管理员模式 (Admin Mode) 在和数据库进行交互式处理时的差异。
即使你从未使用过 Bytebase,也可以在 5 分钟内丝滑体验。
Bytebase 在 1.8.0 版本中加入了 SQL 编辑器的管理员模式,在此之前,Bytebase 已具备进行数据库变更和查询的能力,开发人员能在 Bytebase 上完成日常数据库开发的操作了。但是对于专职 DBA 或者 DevOps 团队里承担数据库运维的人员来说,他们还需要进行一些更高权限的运维操作,而管理员模式就满足了这个需求。至此,除了应用本身和数据库打交道之外,所有人工和数据库打交道的场景,都可以通过 Bytebase 来进行收口了。公司再也不需要把数据库的访问密钥分发给大家,也不需要配置单独的堡垒机/跳板机。Bytebase 通过收口,而且可以对操作进行管控,Bytebase 会识别危险语句,大大降低开发者误操作几率,而 DBA 也可以通过 Bytebase 进行全局的 SQL 审核配置和审计。
1)复制粘贴以下语句用 Docker 启动 1 个 Bytebase 实例。docker run --init \
--name bytebase \
--restart always \
--publish 5678:8080 \
--health-cmd "curl --fail http://localhost:5678/healthz || exit 1" \
--health-interval 5m \
--health-timeout 60s \
--volume ~/.bytebase/data:/var/opt/bytebase \
bytebase/bytebase:1.9.0 \
--data /var/opt/bytebase \
--port 8080
2)复制粘贴以下语句用 Docker 启动 1 个 MySQL 实例。docker run --name mysqldtest \ --publish 3307:3306 \ -e MYSQL_ROOT_HOST=172.17.0.1 \ -e MYSQL_ROOT_PASSWORD=testpwd1 \ mysql/mysql-server:8.0
3) 在登陆页面第一次注册默认成为工作空间所有者 (Workspace Owner),在另一个浏览器里再次打开登陆页面注册会成为默认成为工作空间开发者 (Workspace Developer) 更多权限内容请查看:https://www.bytebase.com/docs/concepts/roles-and-permissions*注册成功后可以通过 设置 > 工作空间 > 成员 查看。*在本教程中,免费版默认的角色即可完成所有操作。如果需要修改角色则需要通过开通团队版或者企业版,方法是通过 设置 > 工作空间 > 订阅 将版本升级成免费试用。4) 根据提示,在实例里添加针对于 Test 环境的实例,配置如下图,用户名/密码为 root/testpwd1。5)点击上部导航栏的项目,进入项目页面,点击创建项目,建立一个名为 test-editor 的项目。
6)在 test-editor 项目里点击 创建数据库,建立对应的数据库 dbtest,并且 批准 和 解决 对应的工单。在数据库课表中看到下行即表示建立成功。
1) 回到主页,点击左栏中的 SQL 编辑器,可进入编辑器界面。
2) 如果以 Owner 账号(工作空间所有者)登陆,可以点击右上角只读,切换到管理员模式,再点击左侧选择数据库,即会呈现黑底的管理员操作界面。
* 如果使用 Developer 账号(工作空间开发者)登陆,则无法切换到管理员模式,只能在只读模式中操作。只读模式下主要场景是执行 SELECT 查询信息语句,本教程旨在演示两种模式的区别,故执行 DDL 建表操作。1) 用 Owner(工作空间所有者) 或 Developer(工作空间开发者)的账户登陆,跳转到 SQL 编辑器,都可在只读模式内操作。3) 点击运行,因为目前是只读模式,任何变更操作都会以工单形式提交。点击 变更 Schema。4) 进入工单页面,之前输入的内容都会自动填充,点击 创建,工单即可创建。5) 之后只有通过审核人通过审核后,该 SQL 语句才会得以执行。1) 用 Owner 账户(工作空间所有者)登陆, 跳转到 SQL 编辑器,切换到管理员模式,黑屏加绿字警示操作高危 ⚠️3) 点击运行,可以看到在管理员模式下,建表 SQL 语句会直接运行。至此,你已经初步体验了通过 Bytebase 处理数据库的一个变更操作,对于开发者和 DBA 的两种不同模式下的差异。接下来,你可以继续在两种模式下进行探索或是尝试接入你的真实数据库。欢迎试用并向我们反馈你的建议和需求!♥️