Databricks中DESCRIBE可识别表但REFRESH报错,表未在目录浏览器显示
Databricks中DESCRIBE识别表但REFRESH TABLE报错及表未显示的原因分析
1. DESCRIBE与REFRESH TABLE的权限要求差异
DESCRIBE仅需元数据读取权限(如USE SCHEMA权限+表的SELECT METADATA权限),无需完整的SELECT数据权限,因此即使没有表的数据访问权限,也能读取并返回表结构元数据。REFRESH TABLE需要表的SELECT权限,因为该操作会扫描表的底层存储(如对象存储)以更新Databricks的元数据缓存,过程中需要访问实际数据,权限不足时就会触发SecurityException。
2. 所有者不同的提示关联
报错提到retail.codeproduct与retail.managers所有者不同,大概率是你的权限通过角色/组继承而来,且权限配置基于schema或所有者维度:比如你拥有retail schema下某所有者表的权限,但managers表属于另一所有者,导致你没有该表的SELECT权限,最终引发REFRESH操作失败。
3. 表未在Catalog Explorer显示的原因
Catalog Explorer的列表展示依赖完整的对象可见性权限,如果你的用户没有该表的SELECT或USAGE权限(或元数据读取权限未达标),即便DESCRIBE能读取部分元数据,Catalog Explorer也不会列出该表——它的权限校验逻辑比单独的DESCRIBE操作更严格。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

