Synapse工作区跨区迁移:复制带密码登录名的权限问题求助
解决Synapse工作区迁移登录名时的权限问题
方案1:使用Azure AD管理员账号操作
- 登录Azure门户,找到目标Synapse工作区,确认已配置Azure AD管理员(未配置则先完成配置)。
- 用该Azure AD管理员账号连接到Server A的
aster数据库。 - 执行以下命令,为
sqladmin或指定用户授予目标存储过程的执行权限:GRANT EXECUTE ON [存储过程名称] TO [sqladmin]; - 之后即可用
sqladmin执行迁移登录名的脚本,或直接用AD管理员账号完成整个登录名复制操作。
方案2:创建存储过程时指定执行上下文
如果无法使用Azure AD管理员,可在创建迁移用的存储过程时添加WITH EXECUTE AS OWNER子句,让存储过程以所有者身份运行(默认所有者为创建存储过程的sqladmin,若数据库所有者权限足够,即可完成密码复制操作):
CREATE PROCEDURE [存储过程名称] WITH EXECUTE AS OWNER AS -- 此处粘贴迁移登录名的脚本内容 GO
创建完成后,直接执行该存储过程即可,无需额外授予执行权限。
方案3:使用Synapse管理员权限执行脚本
通过Synapse Studio的“SQL脚本”界面,以Synapse管理员身份(而非sqladmin)连接到aster数据库,直接运行迁移登录名的完整脚本,跳过存储过程创建步骤,一次性完成登录名及密码的复制。
内容的提问来源于stack exchange,提问作者Harry Leboeuf
相关产品推荐
相关产品推荐

