pglinter
PG数据库规则检查插件
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pglinter | 1.1.1 | ADMIN | PostgreSQL | Rust |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 5090 | pglinter | 否 | 是 | 否 | 是 | 是 | 否 | - |
| 相关扩展 | amcheck supautils |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.1.1 | 1817161514 | pglinter | - |
| RPM | PIGSTY | 1.1.1 | 1817161514 | pglinter_$v | - |
| DEB | PIGSTY | 1.1.1 | 1817161514 | postgresql-$v-pglinter | - |
构建
您可以使用 pig build 命令构建 pglinter 扩展的 RPM / DEB 包:
pig build pkg pglinter # 构建 RPM / DEB 包
安装
您可以直接安装 pglinter 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pglinter; # 当前活跃 PG 版本安装
pig ext install -y pglinter -v 18 # PG 18
pig ext install -y pglinter -v 17 # PG 17
pig ext install -y pglinter -v 16 # PG 16
pig ext install -y pglinter -v 15 # PG 15
pig ext install -y pglinter -v 14 # PG 14
dnf install -y pglinter_18 # PG 18
dnf install -y pglinter_17 # PG 17
dnf install -y pglinter_16 # PG 16
dnf install -y pglinter_15 # PG 15
dnf install -y pglinter_14 # PG 14
apt install -y postgresql-18-pglinter # PG 18
apt install -y postgresql-17-pglinter # PG 17
apt install -y postgresql-16-pglinter # PG 16
apt install -y postgresql-15-pglinter # PG 15
apt install -y postgresql-14-pglinter # PG 14
创建扩展:
CREATE EXTENSION pglinter;
用法
pglinter 分析你的数据库以发现潜在问题、性能隐患和最佳实践违规。结果以 SARIF 2.1.0 格式输出。
运行检查
SELECT pglinter.check(); -- 运行所有已启用的规则
SELECT pglinter.check_rule('B001'); -- 运行特定规则
SELECT pglinter.check('/path/to/results.sarif'); -- 将 SARIF 报告保存到文件
SELECT pglinter.check_rule('B001', '/path/to/b001.sarif');
规则管理
SELECT pglinter.show_rules(); -- 显示所有规则及其状态
SELECT pglinter.explain_rule('B001'); -- 获取规则详情和修复建议
SELECT pglinter.enable_rule('B001'); -- 启用特定规则
SELECT pglinter.disable_rule('B001'); -- 禁用特定规则
SELECT pglinter.is_rule_enabled('B001'); -- 检查规则是否已启用
SELECT pglinter.enable_all_rules();
SELECT pglinter.disable_all_rules();
规则配置
SELECT pglinter.update_rule_levels('B001', 30, 70); -- 设置警告/错误阈值
SELECT pglinter.get_rule_levels('B001'); -- 获取当前阈值
SELECT pglinter.export_rules_to_yaml(); -- 将规则导出为 YAML
SELECT pglinter.import_rules_from_yaml('yaml...'); -- 从 YAML 导入规则
可用规则
基础(B 系列): B001 无主键的表、B002 冗余索引、B003 缺失的外键索引、B004 未使用的索引、B005 大写命名、B006 未使用的表、B007 跨模式外键、B008 外键类型不匹配、B009 共享触发器函数、B010 保留关键字、B011 每个模式多个所有者。
集群(C 系列): C002 不安全的 pg_hba.conf 条目、C003 MD5 密码加密。
模式(S 系列): S001 无默认角色授权、S002 环境前缀/后缀、S003 不安全的 public 模式、S004 系统角色所有权、S005 每个模式多个所有者。