Superset1.3.2对接LDAP认证Trino集群时用户模拟失效如何解决
Superset 1.3.2 对接Trino用户模拟不生效解决方案
你遇到的是Superset 1.3.2版本Trino连接的已知特性:固定写在SQLAlchemy URI中的用户名优先级高于模拟登录逻辑,同时需要完成Trino侧模拟授权和Superset侧额外配置才能正常使用用户模拟功能,具体解决步骤如下:
步骤1:配置Trino侧模拟权限
在Trino Coordinator节点的config.properties配置文件中添加如下配置,给你用到的服务账号myuser授予模拟权限:
# 开启用户模拟功能 http-server.authentication.allow-impersonation=true # 允许myuser模拟所有用户,可按需替换为特定用户列表、正则或LDAP用户组规则 auth.users-to-impersonate.myuser=*
配置完成后重启Trino集群使配置生效。
步骤2:修改Superset数据库连接配置
2.1 调整SQLAlchemy URI
删除原有URI中写死的固定用户名和密码,仅保留服务地址和端口:trino://@trino_server:8443
2.2 更新安全额外配置
将原有安全额外配置替换为以下内容,显式开启模拟功能,同时把服务账号的认证信息放到连接参数中:
{ "connect_args": { "verify": false, "user": "myuser", "password": "mypassword" }, "impersonate_user": true }
2.3 确认复选框状态
保持「模拟登录用户(Presto、Trino、Hive、GSheets)」复选框处于勾选状态,保存所有连接配置。
可选:升级Trino驱动版本
如果按上述配置后仍然不生效,检查Superset环境安装的Trino驱动版本,要求版本≥0.309.0,可执行以下命令升级后重启Superset服务:pip install trino==0.310.0
验证效果
使用不同的LDAP账号登录Superset执行查询,查看Trino的执行日志或Web UI的查询记录,确认执行用户为当前登录的Superset账号即可。
内容的提问来源于stack exchange,提问作者duty sloth
相关产品推荐
相关产品推荐

