超越 DMS:加速将 SQL Server 登录名和用户迁移... 笔记

超越 DMS:加速将 SQL Server 登录名和用户迁移至 Cloud SQL

数据库迁移服务可高效复制数据,但出于安全和合规原因,会排除服务器级对象(如登录账户)。这种有意省略可防止未经授权的权限提升,确保本地环境的权限不会自动迁移至云端。在缺乏监督的情况下迁移加密的密码哈希值,也会违反 PCI-DSS 和 SOC 2 等合规框架。该流程还支持身份现代化,通过清除陈旧凭据并转向云原生身份验证来实现。SQL Server 将登录账户(在服务器级别进行连接身份验证)与用户(在数据库内授权操作)分离开来。安全标识符(SID)将服务器登录账户与数据库用户关联。当数据库迁移时未包含其对应的登录账户,或 SID 不匹配时,用户可能成为孤儿用户。Microsoft 提供的 sp_help_revlogin 脚本可生成 T-SQL 语句,以原始密码哈希和 SID 重新创建登录账户。该脚本在源实例上运行以生成迁移查询。随后,在目标 Cloud SQL 实例上执行该生成的查询,以创建所需的登录账户。若用户成为孤儿用户,可使用 ALTER USER 命令将其重新映射到正确的服务器登录账户。为增强安全性,建议迁移至客户管理的 Active Directory,以实现基于 Kerberos 的集中式身份验证。
CdXz5zHNQW_jlKnVZN3XM.png