Shield CLI v0.3.3 新增 PostgreSQL 插件:浏览器里管理 PG 数据库

前两天发了 MySQL 插件,现在 PostgreSQL 也跟上了。同样的思路------一条命令装好,浏览器打开就能用,不需要在对方机器上装任何客户端。


一条命令安装

bash 复制代码
shield plugin add postgres

验证:

bash 复制代码
shield plugin list
# NAME      VERSION  PROTOCOLS              INSTALLED
# postgres  v0.1.0   postgres, pg, postgresql  2026-03-25T10:00:00+08:00

前提是主程序升级到 v0.3.3+:

bash 复制代码
brew update && brew upgrade shield-cli
# 或
curl -fsSL https://cdn.jsdelivr.net/gh/fengyily/shield-cli@main/install.sh | sh

使用方式

Web UI(推荐)

bash 复制代码
shield start

http://localhost:8181 添加好 postgres 插件

http://localhost:8181 添加应用,Protocol 选 postgres,填好地址、用户名、密码,点连接。

命令行

bash 复制代码
# 连接远程 PostgreSQL
shield postgres 10.0.0.5:5432 --db-user postgres --db-pass mypass --database mydb

# 只读模式
shield postgres 10.0.0.5:5432 --db-user postgres --readonly

不传凭证会交互式提示输入。pgpostgresql 是别名,效果一样:

bash 复制代码
shield pg 10.0.0.5:5432

Web 界面功能

连接成功后浏览器自动打开 Web SQL 客户端,界面和 MySQL 插件类似,但针对 PostgreSQL 做了适配:

Schema 树形浏览

PostgreSQL 按 Schema 组织,不像 MySQL 按 Database 切换。左侧栏展示 Schema → Table → Column/Index 三级树结构,支持搜索过滤。

SQL 编辑器

  • 多标签页,Ctrl+Enter 执行
  • 结果排序、CSV 导出、单元格复制
  • 双击单元格查看完整内容(长文本、JSONB 友好)

表结构管理

  • 查看字段类型、默认值、约束
  • 可视化创建表(支持 PG 类型:SERIALBIGSERIALTIMESTAMPTZJSONBUUIDINET 等)
  • 创建/删除索引
  • 添加/删除字段
  • 创建/删除 Schema

行级操作

  • 插入记录
  • 编辑单元格(双击)
  • 删除行(带确认)

只读模式

和 MySQL 插件一样,只读/读写由启动方控制。只读模式下 INSERT、UPDATE、DELETE、DROP、ALTER、CREATE 等写操作被前后端双重拦截,远程用户无法绕过。


和 MySQL 插件的区别

两个插件功能结构一致,但在 SQL 层面做了完整的 PostgreSQL 适配:

MySQL 插件 PostgreSQL 插件
组织方式 Database → Table Schema → Table
标识符引用 反引号 ````` 双引号 "
自增类型 AUTO_INCREMENT SERIAL / BIGSERIAL
元数据查询 SHOW 命令 information_schema
特有类型 --- JSONBUUIDINETTIMESTAMPTZ

插件源码独立维护

PostgreSQL 插件的代码不在 Shield CLI 主仓库里,而是放在独立的插件 monorepo:

github.com/fengyily/shield-plugins

后续 Redis、SQL Server 等插件也会放在这里。每个插件是独立的 Go module,互不依赖,CI 自动检测哪个插件有改动就构建哪个。


实际场景

临时给同事查 PG 数据

同事需要查几条数据,但他那台机器上没有 pgAdmin 也没有 DBeaver:

bash 复制代码
shield postgres 192.168.1.100:5432 --db-user readonly --readonly

把链接发给他,浏览器打开就能查。用完断开。

排查线上 Schema 结构

生产环境的 PG 不方便直连,通过 Shield 建立加密隧道,只读模式浏览 Schema、表结构和索引:

bash 复制代码
shield postgres prod-db.internal:5432 --db-user ops --readonly --invisible

--invisible 隐身模式需要授权码才能访问,防止链接泄露。

Docker 里的 PG

bash 复制代码
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:16
shield postgres 127.0.0.1:5432 --db-user postgres --db-pass postgres

当前插件状态

插件 状态
mysql ✅ 已发布
postgres ✅ 已发布
redis 计划中
sqlserver 计划中

试一下

bash 复制代码
# 安装/升级 Shield CLI
brew tap fengyily/tap
brew install shield-cli
# 或
curl -fsSL https://cdn.jsdelivr.net/gh/fengyily/shield-cli@main/install.sh | sh

# 安装 PostgreSQL 插件
shield plugin add postgres

# 连接
shield postgres 127.0.0.1:5432 --db-user postgres

开源地址:https://github.com/fengyily/shield-cli

插件仓库:https://github.com/fengyily/shield-plugins

文档地址:https://docs.yishield.com

有问题或建议欢迎提 Issue

相关推荐
TechWayfarer20 分钟前
知乎/微博的IP属地显示为什么偶尔错误?用IP归属地查询平台自检工具3步验证
网络·python·网络协议·tcp/ip·网络安全
Wave84525 分钟前
从单片机开发看透网络底层:Wi-Fi、TCP/IP 与 HTTP 的通俗解析
网络·单片机·tcp/ip
ZYH_060127 分钟前
园区网络实验作业
网络
疯狂的代M夫1 小时前
网络通信流程
网络
小江的记录本1 小时前
【网络安全】《网络安全常见攻击与防御》(附:《六大攻击核心特性横向对比表》)
java·网络·人工智能·后端·python·安全·web安全
小夏子_riotous2 小时前
Docker学习路径——3、常用命令
linux·运维·服务器·学习·docker·容器·centos
2401_873479403 小时前
应急响应:勒索软件攻击源IP分析,如何通过IP地址查询定位辅助溯源?
网络·tcp/ip·安全·网络安全·ip
拾薪4 小时前
[SuperPower] Brainingstorm - 流程控制架构分析
网络·人工智能·ai·架构·superpower·brainstorming
IMPYLH4 小时前
Linux 的 rm 命令
linux·运维·服务器·网络·bash
white-persist5 小时前
【vulhub shiro 漏洞复现】vulhub shiro CVE-2016-4437 Shiro反序列化漏洞复现详细分析解释
运维·服务器·网络·python·算法·安全·web安全