Navicat中无法直接隐藏数据库,需通过权限控制或连接设置实现:一是限制账号权限,使其仅对指定数据库有访问权;二是启用连接高级选项中的“仅显示指定数据库”并填写库名列表。
Navicat 里怎么让某个数据库不显示在左侧导航栏
navicat 本身没有“隐藏数据库”的开关,它只按连接权限和查询结果展示——你看到的,就是当前账号 show databases 能查到的。所以所谓“隐藏”,本质是控制账号权限或过滤显示逻辑。
用 MySQL 权限限制让数据库对 Navicat 不可见
这是最干净、最符合权限设计的做法:让 Navicat 登录所用账号根本查不到那个库。
- 给账号只授予特定数据库的权限,比如
GRANT SELECT ON `app_prod`.* TO 'navuser'@'%';,别碰mysql或其他敏感库 - 确保没给
GRANT USAGE ON *.*或GRANT ALL ON *.*这类通配权限 - 执行
FLUSH PRIVILEGES;后,重新连接 Navicat,SHOW DATABASES;就只会列出有权限的库
注意:如果账号有 SELECT 权限但没 SHOW DATABASES 权限,Navicat 可能报错或显示空列表——这不是 bug,是权限校验严格的表现。
Navicat 连接设置里的“仅显示指定数据库”选项
这个功能藏得深,但真有用:它不改权限,只让 Navicat 主动过滤掉不匹配的库名。
- 右键连接 → “编辑连接” → 切到“高级”选项卡
- 勾选
仅显示指定数据库,然后在下方输入框填你要保留的库名,用英文逗号分隔,比如:app_dev,app_test - 保存后重启连接,Navicat 会跳过所有不匹配的库(包括权限内但未列明的)
⚠️ 容易踩的坑:仅显示指定数据库 是客户端过滤,不是服务端拦截;如果你填了不存在的库名,Navicat 会显示空导航栏,且不会报错提示——得自己核对拼写和大小写。
为什么不能靠 Navicat 的“过滤器”或“搜索框”来“隐藏”
左侧导航栏顶部的搜索框只是视觉折叠,不是隐藏。它只是收起不匹配项,但数据库节点仍在 DOM 中,右键刷新或展开父节点仍会重现。
- 搜索框输
xxx→ 匹配不到的库变灰/收起,但没消失 - 一旦你右键点击连接 → “刷新”,所有有权限的库立刻全部弹回来
- 这跟“隐藏”完全不是一回事,只是临时视图操作,不影响任何底层行为
真正要“不见”,要么删权限,要么用连接级白名单——其他都是自欺欺人的临时折叠。

















