登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

IntelliJ IDEA 数据库工具配置只读连接的方法

来源:17golang原创

时间:2026-11-13 14:31:03 134浏览 收藏

IntelliJ IDEA 的数据库只读开关位于数据源属性的 Options → Read-only:在 Database 工具窗口选中连接,打开 Data Sources and Drivers,勾选后保存即可。这个开关用于减少误改;真正限制写入,还应使用数据库端只授予所需查询权限的账号。某些驱动不支持只读状态时,查询控制台仍可能执行修改语句。

官方地址:https://www.jetbrains.com/idea/

只读连接设置帮助:https://www.jetbrains.com/help/idea/configuring-database-connections.html

以下使用英文界面标签说明路径,图中均为原创操作说明图,不是软件截图。示例连接称为 Report-RO,账号名 report_reader,均为演示名称;服务器、数据库及授权范围请使用管理员提供的实际信息。

步骤一:准备查询账号并打开连接属性

准备数据库类型、服务器地址、端口、数据库名称、查询账号及所需的 SSL/SSH 信息。不要直接把日常管理员账号改个连接名就当成只读账号;也不要把密码塞进可复制的 JDBC URL 文本。

在 View → Tool Windows → Database 打开数据库窗口。已有连接时,选中它并点击工具栏的 Data Source Properties,进入 Data Sources and Drivers;也可在选中数据源后使用 Shift+Enter。如果需要新建连接,则在 Database 工具栏点击 + → Data Source → 对应数据库类型。

在左侧选中 Report-RO,进入 General 页,将服务器、端口、User 和 Database 等字段对应到实际连接信息。如果提示缺少驱动文件,按对话框中的下载提示完成驱动准备;连接需要隧道时,在 SSH/SSL 页按管理员要求设置。

数据库工具窗口与查询连接属性入口说明
操作说明图:左侧选中 Report-RO,右侧 General 页填写查询账号;图中的本地地址与名称仅供演示。

点击 Test Connection 后,应看到连接成功的反馈,再继续下一步。如果失败,先核对网络、认证和驱动信息。连接测试成功只说明能够建立通信,不证明账号已经没有写权限。

如果找不到 Database 功能,进入 IDE 设置的 Plugins 查找并启用 Database Tools and SQL。官方帮助说明,没有 Ultimate 订阅时数据库功能支持有限,因此还需要确认所用版本与订阅是否提供所需能力。

步骤二:在 Options 中开启 Read-only

保持左侧选中需要保护的 Report-RO 数据源,点击右侧 Options 标签,在 Connection 区域勾选 Read-only。不要误选到另一个数据源,也不要把事务控制中的 Manual 当成只读设置。

Options 的 Connection 区域勾选 Read-only 说明
操作说明图:Read-only 复选框处于选中状态。它是数据源级防误改设置,不是数据库账号权限授权页。

此时可见的确认状态是 Read-only 前有勾选标记,且当前左侧连接仍为 Report-RO。官方帮助指出,开启后不能在 Data editor 中修改数据;查询控制台的限制还取决于驱动对只读状态的支持。

如果连接使用了 Session Templates,还应留意模板的 Authentication、Read-only 等选项可能覆盖数据源的一般连接设置。不要仅检查默认页,就假定所有会话采用相同账号与只读状态。

步骤三:保存配置并确认查询范围

点击对话框底部 Apply,再点击 OK 关闭。重新打开同一数据源的属性,确认 Read-only 仍勾选;若已有旧会话,先完成或取消未提交事务,再断开并重新连接,避免把旧会话状态与新设置混淆。

在 Database 树中展开被授权的数据库或 schema,双击一张允许访问的表,打开 Data editor。预期是可以读取授权数据,而不能像可写连接那样修改表格单元格。下图只展示这种阅读状态,不保证每个版本的按钮形状和位置完全相同。

Report-RO 数据源下的表数据只读查看说明
结果说明图:Report-RO 连接下打开演示表,保持数据查看状态;内容为虚构示例,不是实际查询结果。

如果看不到表,回到 Data Sources and Drivers → Schemas 检查展示范围,再由管理员确认账号对目标对象的访问权限。Schemas 的可见性设置控制 IDE 展示哪些对象,不能代替数据库端授权。

设置或状态实际含义
连接名含 RO帮助人识别用途,本身没有权限作用
Read-only 已选中提供 IDE 及驱动相关的只读防护
事务模式 Manual控制提交方式,不等于禁止写入
数据库查询专用账号由数据库权限机制限制可执行操作

查询连接的交付信息应包含数据源名称、账号、允许访问的对象及是否采用只读设置,不包含密码。需要给其他人复用配置时,使用团队认可的凭据分发方式;导出连接配置不意味着对方自动获得相同数据库权限。

只读连接的常见问题

勾选 Read-only 后就能放心使用管理员账号吗?

不能。它主要减少误操作;驱动支持和控制台行为存在差异。数据库账号应按实际查询任务限制权限,避免借助客户端开关代替服务端访问控制。

为什么能查看表,但查询控制台仍能修改?

官方说明中有这一限制:驱动若不支持只读状态,控制台仍可能修改。先停止使用该连接执行变更,再让管理员检查账号权限与连接会话;不要在生产表上故意试写来证明是否只读。

为什么只读设置保存了,新会话状态却不同?

检查是否选中了其他数据源、是否仍在使用旧会话,以及 Session Templates 是否覆盖了默认设置。查询文件绑定的数据源也应与 Report-RO 一致。

只读账号是否一定能看到全部表?

不一定。能否读取具体对象由数据库授权决定,IDE 中的 Schemas 选择还会影响展示范围。只申请完成查询任务所需的对象权限即可。

字段与驱动限制参考:https://www.jetbrains.com/help/idea/data-sources-and-drivers-dialog.html。数据库功能说明:https://www.jetbrains.com/help/idea/relational-databases.html。

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>