You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取并检索CockroachDB集群的SQL查询历史记录?

检索CockroachDB集群SQL查询历史及持久化存储

可以实现,但需要先配置CockroachDB的审计日志功能,把所有执行的SQL语句输出到文件,之后就能用grep这类工具检索。

具体操作步骤

1. 开启集群级SQL审计日志

CockroachDB自带审计日志功能,能记录所有提交到集群的SQL语句,配置方式有两种:

  • 集群启动时指定参数:
    cockroach start --sql-audit-dir=/your/log/directory --sql-audit-sink=file:///your/log/directory/audit.log
    
  • 运行中动态配置(需管理员权限):
    SET CLUSTER SETTING sql.audit.dir = '/your/log/directory';
    SET CLUSTER SETTING sql.audit.sink = 'file:///your/log/directory/audit.log';
    

配置完成后,所有SQL操作(包括查询、增删改、DDL等)都会被写入指定日志文件,每条日志还会附带执行时间、客户端IP、执行用户等辅助信息。

2. 用grep检索日志

日志生成后,直接通过grep工具检索目标SQL,示例如下:

  • 查找所有SELECT查询:
    grep "SELECT" /your/log/directory/audit.log
    
  • 查找涉及users表的所有操作:
    grep "users" /your/log/directory/audit.log
    

3. 额外注意点

  • 审计日志会持续占用磁盘空间,建议用logrotate这类工具配置日志轮转,定期归档或清理旧日志。
  • 日志文件需设置严格的权限控制,防止敏感SQL(如含密码的语句)泄露。
  • 可通过过滤规则缩小日志范围,比如只记录特定用户的操作:
    SET CLUSTER SETTING sql.audit.filter = 'user=your_target_user';
    

内容的提问来源于stack exchange,提问作者Xiang Gu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:55:15