如何提升Azure Synapse SQL Server权限以删除外部表
解决Azure Synapse SQL Pool删除外部表的权限问题
错误提示
Cannot drop the EXTERNAL TABLE 'TableName', because it does not exist or you do not have permission.
权限排查与提升步骤
先确认当前账号对目标外部表的权限,执行以下查询:
SELECT * FROM sys.fn_my_permissions('TableName', 'OBJECT');检查结果中是否包含
ALTER或CONTROL权限,这两类权限是删除外部表的必要条件。若缺少权限,需由具有管理员权限的账号执行以下授权操作(根据实际需求选择):
- 授予目标外部表的
CONTROL权限(最高表级权限):GRANT CONTROL ON OBJECT::[SchemaName].[TableName] TO [YourUserName]; - 授予外部表所在架构的
ALTER权限:GRANT ALTER ON SCHEMA::[SchemaName] TO [YourUserName]; - 授予服务器级的
ALTER ANY EXTERNAL TABLE权限(可操作所有外部表):GRANT ALTER ANY EXTERNAL TABLE TO [YourUserName];
- 授予目标外部表的
额外注意:
- 执行授权的账号需具备
GRANT ANY OBJECT PERMISSION或对应层级的更高权限 - 再次确认外部表的名称、所属架构拼写无误,避免因对象不存在导致的错误提示
- 执行授权的账号需具备
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

