如何为Azure Synapse中的ETL用户授予创建全局临时表的权限?
Azure Synapse中为ETL用户授予全局临时表创建权限的解决办法
在Azure Synapse SQL环境中,全局临时表(##前缀)的创建权限默认仅开放给服务器级角色成员(比如管理员),普通SQL账户默认没有该权限,这就是你遇到Msg 104365错误的原因。以下是具体解决步骤:
权限授予操作(需管理员账户执行)
使用拥有服务器管理员权限的账户连接到Synapse SQL池,执行以下任一操作即可:
- 直接授予服务器级ALTER ANY DATABASE权限
该权限仅覆盖全局临时表创建所需的权限,不会赋予过多额外权限:
GRANT ALTER ANY DATABASE TO [ETL用户名];
- 将用户加入dbmanager服务器角色
dbmanager角色成员拥有创建数据库的权限,同时包含创建全局临时表的权限:
ALTER SERVER ROLE dbmanager ADD MEMBER [ETL用户名];
注意事项
- 权限授予后,ETL用户需要重新建立Synapse连接才能生效
- 全局临时表会在所有引用它的会话结束后自动删除,无需手动清理
- 如果业务场景允许,也可以考虑使用局部临时表(
#前缀),普通用户默认拥有创建局部临时表的权限,无需额外授权
内容的提问来源于stack exchange,提问作者Sam Alex
相关产品推荐
相关产品推荐

