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

Snowflake 0.97版本:如何将snowflake_user迁移至snowflake_legacy_service_user

Snowflake用户从snowflake_user迁移至snowflake_legacy_service_user的可行方案

背景

已升级Snowflake Provider至0.97版本,需将由snowflake_user资源创建的现有用户迁移至snowflake_legacy_service_user资源。此前尝试两种方法均失败:

  • 将资源名称替换为snowflake_legacy_service_user后执行import命令,导致原用户被销毁并重建新用户
  • 使用moved命令迁移,收到错误提示:

    Error: Move Resource State Not Supported
    The "snowflake_legacy_service_user" resource type does not support moving resource state across resource types.

最优迁移步骤

  1. 备份Terraform状态文件
    先导出当前状态到本地文件作为备份:

    terraform state pull > state-backup.tfstate
    
  2. 手动修改状态文件中的资源类型
    打开导出的状态文件(或远程状态的本地副本),找到目标snowflake_user对应的资源块,将"type"字段值从"snowflake_user"修改为"snowflake_legacy_service_user",确保"name"、"id"等核心属性保持不变。

  3. 更新Terraform配置文件
    将配置中的资源定义从:

    resource "snowflake_user" "service_user" {
      # 原配置参数
    }
    

    修改为:

    resource "snowflake_legacy_service_user" "service_user" {
      # 保留原兼容参数,按需调整新资源类型特有的配置
    }
    

    注意:检查并调整配置参数,确保符合snowflake_legacy_service_user的要求,移除或添加该资源类型专属字段。

  4. 验证状态与配置的一致性
    执行terraform plan,确认输出结果中无资源创建/销毁操作,仅显示资源类型的状态调整信息。

  5. 应用状态变更
    若plan结果符合预期,执行:

    terraform apply
    

    此操作仅更新Terraform的状态记录,不会对Snowflake中的实际用户资源产生修改。

注意事项

  • 操作前必须确保状态文件备份完整,一旦出现问题可通过terraform state push state-backup.tfstate恢复
  • 确认snowflake_legacy_service_user支持原用户的所有属性(如密码、权限关联等),避免因参数不兼容导致意外问题
  • 若该用户关联了其他Terraform资源(如角色绑定、权限设置),需确认这些关联资源的配置无需调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:41:00