暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

Bytebase 2024-09-26
211
原文地址 https://www.bytebase.com/docs/tutorials/api-audit-log/

代码库:https://github.com/bytebase/api-example/tree/main/audit-log

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

Bytebase API:见 https://www.bytebase.com/docs/api/overview/

在之前的教程中,我们演示了如何使用 Bytebase API:
  1. 创建 Schema 变更

     ‍‍‍https://www.bytebase.com/docs/tutorials/api-issue/

  2. 检查用户和数据库权限

    见 https://www.bytebase.com/docs/tutorials/api-user-database-permission/
本教程将重点介绍如何在 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 并克隆它。

      https://github.com/bytebase/api-example

    • 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( https://api.bytebase.com/#tag/auditlogservice/POST/v1/auditLogs:search)API 获取工作空间级审计日志。默认时间范围为 7 天前至今。你也可以通过过滤器在请求正文中传递 startTimeendTime 来调整时间范围。
        ‍‍
          const filter = `create_time >= '${startDate}' && create_time <= '${endDate}'`;
        • db-fetch-user-permission.tsx 中,如果用户选择了特定项目,我们将通过 v1/projects/PROJECT_ID/auditLogs:search( https://api.bytebase.com/#tag/auditlogservice/POST/v1/projects/%7Bproject%7D/auditLogs:search)API 获取项目级审计日志。时间范围过滤器与工作空间级审计日志相同。

        总结

        恭喜你使用 Bytebase API 成功创建了数据库审计查看器。同理,你也可以通过调用 v1/auditLogs:export https://api.bytebase.com/#tag/auditlogservice/POST/v1/auditLogs:exportAPI 导出日志。

        Bytebase 2.23.0 - 支持 Entra (Azure AD) 用户/组同步

        深度解读 2024 Gartner DevOps 魔力象限

        Bytebase 产品介绍

        Bytebase 签约澳洲 ROLLER,助力文娱场馆一体化 SaaS 统一数据库操作


        文章转载自Bytebase,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论