如何批量禁用或删除Looker中的孤立用户?
Looker批量禁用/删除用户的实现方案
Looker的原生管理界面确实不支持直接导入用户列表完成批量禁用或删除操作,但可以通过以下两种方式实现需求:
1. 利用Looker API批量操作
通过Looker API可以编写脚本批量处理用户,支持禁用或删除操作:
- 先调用
GET /api/3.1/users接口获取全量用户数据,筛选出需要处理的用户ID列表; - 针对目标用户ID,调用
PATCH /api/3.1/users/{user_id}接口,将is_disabled字段设为true实现禁用;或者调用DELETE /api/3.1/users/{user_id}接口直接删除用户(删除操作不可逆,建议先禁用验证)。
以下是Python脚本示例(需替换为你的实例信息和目标用户ID):
import requests LOOKER_INSTANCE = "https://your-looker-domain.com" API_TOKEN = "your-valid-api-token" TARGET_USER_IDS = [101, 102, 103] # 替换为需要处理的用户ID列表 headers = {"Authorization": f"token {API_TOKEN}"} # 批量禁用用户 for user_id in TARGET_USER_IDS: update_url = f"{LOOKER_INSTANCE}/api/3.1/users/{user_id}" response = requests.patch(update_url, json={"is_disabled": True}, headers=headers) if response.status_code == 200: print(f"用户ID {user_id} 已成功禁用") else: print(f"禁用用户ID {user_id} 失败: {response.text}") # 批量删除用户(谨慎执行,删除后无法恢复) # for user_id in TARGET_USER_IDS: # delete_url = f"{LOOKER_INSTANCE}/api/3.1/users/{user_id}" # response = requests.delete(delete_url, headers=headers) # if response.status_code == 204: # print(f"用户ID {user_id} 已成功删除") # else: # print(f"删除用户ID {user_id} 失败: {response.text}")
2. 使用Looker CLI批量操作
借助Looker官方CLI工具也能快速完成批量处理:
- 先通过
pip install looker-sdk安装CLI工具,然后配置连接到你的Looker实例; - 编写Shell脚本循环执行CLI命令:
# 批量禁用用户示例 TARGET_USER_IDS="101 102 103" for user_id in $TARGET_USER_IDS; do looker users update $user_id --is_disabled true done # 批量删除用户示例(谨慎执行) # for user_id in $TARGET_USER_IDS; do # looker users delete $user_id # done
注意事项
- 执行删除操作前务必确认目标用户列表,该操作不可逆;建议先批量禁用,验证无误后再考虑删除;
- 操作API或CLI的账号需要拥有
manage_users权限; - 操作前建议导出当前用户列表做备份,避免误操作导致数据丢失。
内容的提问来源于stack exchange,提问作者HVJ
相关产品推荐
相关产品推荐

