用途:在 Snowflake 中安全地交换两个数据库的名称或重定向依赖,避免手工改名带来的对象丢失与权限断裂。
三种模式:模式 A 名称互换,适用于两个可写库,通过三步重命名交换名称,并同步缺失对象、镜像授权;模式 B 只读依赖重定向,适用于无法改名的只读/共享库,在可写的 L1 库中重建视图指向替代库;模式 C 零拷贝互换,用于导入的 Datashare 与目录链接数据库(CLD)之间,使用 Snowflake 内置系统函数完成。
主要能力:预检数据库与模式是否存在;审计缺失的表、视图、序列、存储过程与函数;用 GET_DDL 取定义并在替换库名后创建;镜像数据库、模式、对象及未来授权;捕获近 24 小时成功查询并回放验证权限;提供回滚重命名语句。
使用方式:需 ACCOUNTADMIN 或具备 MANAGE GRANTS 的 SYSADMIN;两库须存在。模式 A 要求两库可写且存在同名模式;模式 B 需可写 L1 库/模式;模式 C 需一库为导入共享、另一库为 CLD。流程含强制确认点:审计结果、授权语句、破坏性查询回放前均需用户批准。
限制:视图体内硬编码库名需替换;动态表、流、任务引用库名需在互换后检查更新;ACCOUNT_USAGE 有最长约 3 小时延迟;CREATE OR REPLACE 会重置授权,需先捕获再重授;共享库不支持 GET_DDL,仅对 L1 可写库执行。资料未提供安装命令与具体调用入口。