You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks中查询Delta表所有者?已尝试DESCRIBE TABLE EXTENDED

获取Delta表所有者详细信息的Databricks查询方法

问题说明

DESCRIBE TABLE EXTENDED显示的root一般是集群服务账号,并非实际的表所有者,要获取真实所有者信息可以用以下方法:

1. Unity Catalog环境下的查询

如果你的Delta表由Unity Catalog管理,直接查询系统元数据视图:

  • 查询表的所有者字段:
SELECT table_catalog, table_schema, table_name, owner
FROM system.information_schema.tables
WHERE table_name = '你的表名' AND table_schema = '你的 schema 名'
  • 或者通过权限表确认拥有者权限:
SELECT table_catalog, table_schema, table_name, grantee
FROM system.information_schema.table_privileges
WHERE table_name = '你的表名' 
  AND table_schema = '你的 schema 名'
  AND privilege_type = 'OWN'

2. Hive Metastore环境下的查询

对于Hive Metastore管理的表:

  • 使用SHOW GRANT命令直接查看:
SHOW GRANT ON TABLE your_schema.your_table TO USER
  • 或者查询Hive元数据表(需对应权限):
SELECT t.TBL_NAME AS table_name, u.USER_NAME AS owner
FROM hive_metastore.DBS d
JOIN hive_metastore.TBLS t ON d.DB_ID = t.DB_ID
JOIN hive_metastore.TABLE_PARAMS tp ON t.TBL_ID = tp.TBL_ID
JOIN hive_metastore.ROLES r ON tp.PARAM_VALUE = r.ROLE_ID
JOIN hive_metastore.ROLE_MAP rm ON r.ROLE_ID = rm.ROLE_ID
JOIN hive_metastore.USERS u ON rm.PRINCIPAL_ID = u.USER_ID
WHERE tp.PARAM_KEY = 'owner'
  AND t.TBL_NAME = '你的表名'
  AND d.NAME = '你的 schema 名'

注意事项

  • 确保你拥有查询对应元数据的权限
  • 若表是通过集群服务账号创建的,可能实际所有者就是root,但大部分场景下是业务用户或角色

内容的提问来源于stack exchange,提问作者Farzu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:05:15