You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用TSC将Tableau OAuth连接转为用户名密码认证失败求助

解决Tableau Server Client切换Snowflake连接认证类型的问题

当尝试用TSC将Snowflake连接从OAuth切换为用户名密码认证时,直接修改现有连接属性会触发404020: Resource Not Found错误,这是因为Tableau API不允许直接修改连接的核心认证类型,必须通过删除旧连接、添加新连接的方式实现切换,具体操作如下:

操作步骤及代码示例

  1. 获取目标工作簿并加载现有连接
    首先检索目标工作簿,并填充其关联的连接信息:

    import tableauserverclient as TSC
    
    # 假设已完成Server认证(例如server.auth.sign_in(username, password))
    wb = server.workbooks.get_by_id('yyyyyyy-yyyyy-yyyy-yyyyy-yyyyyyy')
    server.workbooks.populate_connections(wb)
    
  2. 删除原有OAuth连接
    找到需要替换的OAuth连接并删除:

    old_conn = wb.connections[0]
    server.workbooks.delete_connection(wb, old_conn)
    
  3. 创建新的用户名密码认证连接
    构建新的Snowflake连接对象,显式指定认证类型为用户名密码,并填写必要的连接参数:

    new_conn = TSC.ConnectionItem()
    # Snowflake账户地址,格式为<account_identifier>.snowflakecomputing.com
    new_conn.server_address = 'your-snowflake-account.snowflakecomputing.com'
    new_conn.connection_type = 'snowflake'
    # 认证相关配置
    new_conn.username = 'TABLEAU_USER'
    new_conn.password = 'tb_pass'
    new_conn.embed_password = True
    new_conn.authentication_type = 'username_password'  # 关键:指定认证类型
    # Snowflake连接参数(需与原有连接一致)
    new_conn.dbname = 'your-database-name'
    new_conn.schema = 'your-schema-name'
    new_conn.warehouse = 'your-warehouse-name'
    
  4. 将新连接添加到工作簿
    把新创建的连接关联到目标工作簿:

    server.workbooks.add_connection(wb, new_conn)
    

关键说明

  • 必须删除原有OAuth连接:Tableau API不支持直接修改连接的核心认证类型,直接修改现有连接属性会导致API无法识别该资源,触发404错误。
  • 显式指定authentication_type:通过设置该参数为username_password,明确告知API使用用户名密码认证方式,替代原有的OAuth配置。
  • 保持其他连接参数一致:新连接的数据库、模式、仓库等参数需与原有OAuth连接一致,避免工作簿出现数据源连接异常。

内容的提问来源于stack exchange,提问作者Ezer K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:09:57