如何查询Databricks中可运行Notebook、集群的用户创建时间
Databricks查询已授权用户账号创建时间的实现方法
针对有Notebook运行、集群操作权限的平台存量用户,可根据当前工作区的配置,从以下三种方法里选择适配的方案使用:
方法1:系统表SQL查询(最简便,推荐开通Unity Catalog的工作区使用)
只要你有工作区的SQL查询权限,直接在SQL查询页运行以下语句即可,返回结果里的created_at字段就是对应账号的创建时间:SELECT user_id, user_name, display_name, created_at as 用户创建时间_UTC FROM system.access.users -- 筛选有工作区访问、集群操作权限的用户,匹配目标用户群体 WHERE array_contains(entitlements, 'WORKSPACE_ACCESS') OR array_contains(entitlements, 'ALLOW_CLUSTER_CREATE')这个方法不需要管理员权限,普通有权限的用户就能查询,结果可以直接导出成CSV做台账。
方法2:SCIM接口查询(适合未开通Unity Catalog的老版本工作区)
如果你是工作区管理员,可以生成一个有SCIM读取权限的个人访问令牌,在命令行运行以下curl命令拉取全量用户信息,返回结果中每个用户条目下meta.created字段就是账号创建时间:curl -X GET \ -H "Authorization: Bearer <替换为你自己的个人访问令牌>" \ <替换为你的Databricks工作区访问地址>/api/2.0/preview/scim/v2/Users?attributes=userName,displayName,entitlements,meta.created拉取到结果后,自行过滤
entitlements字段里包含Notebook运行、集群操作对应权限条目的用户即可。方法3:审计日志核对(适合合规审计场景,结果最准确)
如果工作区已经开启了审计日志投递,可以直接在审计日志存储中筛选事件类型为userCreated的记录,这类记录的事件触发时间就是账号的精确创建时间,同时还能查到后续给该用户分配Notebook、集群操作权限的操作记录,能100%匹配目标用户范围。
注意:以上三种方式返回的时间默认都是UTC时区,需要换算成国内时区的话,直接在时间基础上加8小时即可。
内容的提问来源于stack exchange,提问作者Avinash Ganesh
相关产品推荐
相关产品推荐

