DBeaver本身不提供白名单功能,白名单由数据库服务端或云平台控制;需分别在MySQL/PostgreSQL服务端、云数据库控制台、SSH隧道或应用系统配置(如QYS_SYS_CONFIG表)中设置对应IP规则。

数据库服务端(如 PostgreSQL/MySQL)要求 IP 白名单
这是最常见的情况:你填完 主机、端口、用户名、密码 后点击 测试连接,报错类似 Connection refused 或 Access denied for user ... from 'x.x.x.x',说明数据库服务器(或其前置防火墙/安全组)拒绝了你的客户端 IP。
- MySQL:需在服务端执行
CREATE USER 'user'@'your_client_ip' IDENTIFIED BY 'pwd';,并确保bind-address允许外部连接(非127.0.0.1) - PostgreSQL:检查
pg_hba.conf是否包含类似host all all your_client_ip/32 md5的规则,并重载配置(SELECT pg_reload_conf();) - 云数据库(如阿里云 RDS、AnalyticDB PostgreSQL):必须登录控制台,在「白名单设置」中添加你本地电脑或跳板机的公网 IP(注意不是内网 IP),格式为
x.x.x.x/32或0.0.0.0/0(仅限测试)
云平台强制 SSH 隧道或跳板机访问(绕过白名单)
有些云环境(如部分私有部署契约锁、金融类 RDS)不允许直连,要求所有流量必须经由指定跳板机(Bastion Host)转发。此时 DBeaver 的 SSH 配置页签就是关键入口。
- 在连接设置的
SSH页签中勾选Use SSH tunnel -
SSH Host填跳板机公网地址,Port填22(或自定义端口) - 认证方式优先选
Public key,确保私钥文件路径正确、权限为600(Linux/macOS 下用chmod 600 ~/.ssh/id_rsa) -
Remote host和Remote port填数据库真实内网地址和端口(例如10.0.1.100和5432),不是跳板机的地址 - 如果提示
Invalid private key,别急着换密钥格式——先确认 DBeaver 当前使用的 Java 版本是否支持该密钥类型(OpenSSH >=8.8 默认用sk-ssh-ed25519@openssh.com,旧版 Java 不识别)
应用系统级白名单(如契约锁、电子签平台)
这类白名单不是数据库层面的,而是业务系统自己读取数据库配置(比如 QYS_SYS_CONFIG 表里的 SYSTEM_SECURITY_WHITE_HOST 键)来拦截请求。DBeaver 连得上数据库,但业务系统仍返回 403。
- 用 DBeaver 连上后台数据库后,先查配置:
SELECT configValue FROM QYS_SYS_CONFIG WHERE configKey = 'SYSTEM_SECURITY_WHITE_HOST'; - 如果
configValue是空、JSON 格式错误、或 IP 段写成192.168.1.*(实际只支持 CIDR 如192.168.1.0/24),就会导致管理员被锁死 - 修正方式是执行
UPDATE QYS_SYS_CONFIG SET configValue = '{"ips":["1.2.3.4","5.6.7.8"]}' WHERE configKey = 'SYSTEM_SECURITY_WHITE_HOST';(注意 JSON 双引号和数组格式) - 改完务必重启应用服务(不是重启 DBeaver),否则配置不生效
pg_hba.conf 还没改;或者 DBeaver 走 SSH 隧道连上了,但业务系统自己的白名单表里没加跳板机 IP。排查时要一层层确认,而不是只盯着 DBeaver 界面调参数。

















