当前位置: 首页 > news >正文

通过 Bytebase API 查看数据库审计日志

  • 原文地址
  • 代码库

Bytebase 是一款数据库 DevOps 和 CI/CD 工具,专为开发者、DBA 和平台工程团队设计。虽然它提供了直观的 GUI 来管理数据库 schema 变更和访问控制,但有些团队可能希望使用 Bytebase API 将 Bytebase 集成到现有的 DevOps 平台中。

在这里插入图片描述

在之前的教程中,我们演示了如何使用 Bytebase API:

  1. 创建 Schema 变更
  2. 检查用户和数据库权限

本教程将重点介绍如何在 Bytebase 中获取和过滤审计日志,如果你没有看过前面的教程也没关系。

(一)准备工作

  1. 安装好 Docker
  2. Node.js >= v18

(二)启动 Bytebase

确保 Docker 进程正在运行。通过以下命令启动 Bytebase:

(2.23.0 可替换成当前版本)

docker run --rm --init \--name bytebase \--publish 8080:8080 --pull always \--volume ~/.bytebase/data:/var/opt/bytebase \bytebase/bytebase:2.23.0

Bytebase 正通过 Docker 运行,可以在localhost:8080访问。注册第一个管理员账户,它将被授予工作空间管理员权限。

(三)创建服务账户

  1. 以管理员用户身份登录,进入安全与策略 > 用户与组。单击 + 添加用户,输入 api-example,选择本教程所需的 DBA 角色,然后单击确认

    在这里插入图片描述

  2. 找到新创建的服务账户,点击复制服务密钥。我们将使用此标记来验证 API 调用。

    在这里插入图片描述

(四)运行演示

  • 进入 Bytebase API Example repo 并克隆它。

  • env-template.local 复制到 .env.local。更新变量。

    • NEXT_PUBLIC_BB_URLhttp://localhost:8080
    • NEXT_PUBLIC_BB_SERVICE_ACCOUNTapi-example
    • NEXT_PUBLIC_BB_SERVICE_KEY:上一步复制的服务密钥
  • 进入子文件夹 audit-log,运行以下命令启动 demo 程序:

pnpm i && pnpm dev
  • 在浏览器中打开 demo 程序,你将看到以下页面:

    在这里插入图片描述

  • 为增强 demo 的真实性,访问 Bytebase:

    • 进入 SQL 编辑器查询数据库
    • 进入特定项目,对数据库进行一些更改,例如创建数据库、创建表格、添加一些数据。

(五)获取和过滤审计日志

让我们深入研究一下代码:

  • page.tsx 中,我们选择任何项目前,都通过调用 /v1/projects API 获取所有项目。
    Bytebase 有两级审计日志: 工作空间项目。用户第一次访问 demo 时,我们通过 /v1/auditLogs:search API 获取工作空间级审计日志。默认时间范围为 7 天前至今。你也可以通过过滤器在请求正文中传递 startTime 和 endTime 来调整时间范围。

    const filter = `create_time >= '${startDate}' && create_time <= '${endDate}'`;
    
  • 在 db-fetch-user-permission.tsx 中,如果用户选择了特定项目,我们将通过 /v1/projects/PROJECT_ID/auditLogs:search API 获取项目级审计日志。时间范围过滤器与工作空间级审计日志相同。

(六)总结

恭喜你使用 Bytebase API 成功创建了数据库审计查看器。同理,你也可以通过调用/v1/auditLogs:export API 导出日志。


💡 更多资讯,请关注 Bytebase 公号:Bytebase

http://www.lryc.cn/news/469812.html

相关文章:

  • # 渗透测试# 1.安全见闻(6)通讯协议
  • [Gdiplus/Gdi]_[中级]_[实现多行文本的多种颜色绘制-富文本绘制]
  • Ubuntu如何创建一个子用户并赋与管理员权限
  • 【Linux | IO多路复用】epoll的底层原理详解
  • npm run serve 提示异常Cannot read property ‘upgrade‘ of undefined
  • Muggle OCR 是一个高效的本地OCR(光学字符识别)模块
  • 【SpringBoot】万字源码解析——启动流程
  • Nginx 配置初步 下
  • 可视化ETL平台-Kettle的安装及简单使用
  • java8 动态加载jar包至系统的classpath
  • C++二级题 计算好数:1数大于0数(二进制的位运算)
  • 数字孪生城市:智慧城市的未来蓝图
  • Java篇图书管理系统
  • BUUCTF之web篇
  • 010——二叉树(2)线索化
  • 鸿蒙拍照小助手02
  • lua while循环
  • JAVA篇之类和对象
  • IO流详解_CoderLix
  • 241023-RHEL非管理员安装Docker并开放指定宿主机端口部署Gitlab
  • python ubuntu安装加速
  • 100种算法【Python版】第12篇——快速幂算法
  • Java多线程详解②(全程干货!!!)Thread Runnable
  • 机器学习——图神经网络
  • 一、在cubemx下RTC配置调试实例测试
  • 【Nas】X-DOC:Mac mini Docker部署中国特供版Jellyfin
  • 合合信息:生成式Al时代的内容安全与系统构建加速,开启智能文档的全新潜能
  • 京东双十一高并发场景下的分布式锁性能优化
  • 华为ICT题库-AI 人工智能部分
  • React Native 修改安卓应用图片和名称