如何配置DBeaver连接后自动新建脚本并执行指定SQL?
DBeaver 22.1.2 连接Db2自动切换会话用户配置方案
Shell Commands栏目配置不生效的原因很简单:这里配置的所有命令都是DBeaver调用操作系统Shell启动独立进程执行的外部命令,和DBeaver通过JDBC与Db2建立的连接会话完全隔离,根本无法作用于数据库会话级配置,自然实现不了SQL切用户的需求。
根据你的使用场景,有两种成熟配置方案,按需选择即可:
方案1:连接建立时自动执行切换命令(推荐)
配置后每次和Db2建立新连接会话都会自动执行用户切换,后续所有SQL操作默认使用user2身份,不需要每次新建脚本重复操作,步骤如下:
- 右键目标Db2连接,选择「Edit Connection」打开连接设置面板
- 在左侧设置菜单找到「Connection initialization」(连接初始化)选项
- 在右侧「Bootstrap queries」(引导执行SQL)输入区填入要自动执行的命令:
set session_user=user2; - 勾选输入区下方的「Execute on connection initialization」(连接初始化时执行),不要勾选「Ignore bootstrap errors」(忽略引导执行错误),避免切用户失败时无感知,用错账号产生误操作
- 保存配置后断开当前连接,重新连接即可生效
方案2:新建SQL脚本时预置切换命令
如果你不想连接一建立就切用户,只需要在打开新SQL脚本时触发切换,可以按以下步骤配置:
- 右键目标Db2连接,选择「Edit Connection」打开连接设置面板
- 在左侧设置菜单找到「SQL Editor」配置项
- 找到「Initial script for new SQL editors」(新SQL编辑器初始脚本)输入框,填入
set session_user=user2; - 注意:这个配置只会把命令预填到新打开的脚本编辑器里,不会自动执行。如果需要打开脚本就自动跑切用户命令,还是要搭配方案1的Bootstrap queries配置实现。
配置校验
配置完成重连后,执行以下命令确认当前会话用户是否正确:
values current_session_user;
返回结果为USER2就代表配置正常生效。
补充:Db2 v11.5.7.0版本的官方JDBC驱动默认支持
set session_user语法,不需要额外调整驱动参数。如果执行时返回权限错误,先确认连接用的user1账号是否拥有模拟user2身份的对应权限。
内容的提问来源于stack exchange,提问作者folow
相关产品推荐
相关产品推荐

