从 Easysearch 安全配置中删除指定的角色。
API 格式 #
DELETE /_security/role/{name}
API 作用 #
该 API 用于从集群的安全配置中删除角色:
- 删除角色及其所有关联的权限
- 更新集群的安全配置
- 立即移除被映射用户的相应权限
API 参数 #
路径参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
{name} | String | 是 | - | 要删除的角色名称 |
查询参数 #
- 无(该 API 不使用任何查询参数)
请求体 #
- 不需要请求体(DELETE 操作不需要 JSON 载荷)
请求示例 #
删除指定角色 #
DELETE /_security/role/security_admin
删除自定义角色 #
DELETE /_security/role/data_analyst
响应示例 #
成功响应 #
200 OK
{
"status": "OK",
"message": "'security_admin' deleted."
}
错误响应 - 未指定角色 #
400 Bad Request
{
"status": "BAD_REQUEST",
"message": "No role specified."
}
错误响应 - 角色不存在 #
404 Not Found
{
"status": "NOT_FOUND",
"message": "role 'unknown_role' not found."
}
错误响应 - 权限不足 #
403 Forbidden
{
"status": "FORBIDDEN",
"message": "No permission to access REST API"
}
响应字段说明 #
| 字段 | 类型 | 描述 |
|---|---|---|
status | String | 操作状态(OK、BAD_REQUEST、NOT_FOUND 等) |
message | String | 操作结果消息 |
安全和授权 #
- 该 API 需要身份验证和适当的授权
- 超级管理员可以删除任何角色,包括保留角色和隐藏角色
- 普通用户只能删除其有权限修改的角色
- 标记为
static或reserved的角色需要超级管理员权限才能删除
实现细节 #
- 角色存在性检查:API 首先检查角色是否存在于安全配置中
- 权限验证:验证当前用户是否具有该角色的写入权限
- 原子操作:删除操作是原子性的——要么完全删除角色,要么操作失败
- 配置更新:成功删除后,安全配置会更新到集群的所有节点
- 审计日志:该操作会被记录到审计日志中用于安全跟踪
重要说明 #
- 立即生效:删除角色后,被映射用户的相应权限会立即移除
- 不可恢复:删除操作无法撤销(尽管角色可以重新创建)
- 用户影响:被删除角色的用户将立即失去相应权限
- 保留角色:某些系统角色(如
superuser)可能被标记为保留,需要特殊权限才能删除
相关操作 #
- GET /_security/role:查询所有角色
- GET /_security/role/{name}:查询指定角色
- PUT /_security/role/{name}:创建或更新角色
- PATCH /_security/role/{name}:部分更新角色
使用场景 #
- 角色清理:删除不再需要的自定义角色
- 权限调整:在重构权限模型时移除旧角色
- 安全审计:移除未授权的角色
- 组织变更:在组织结构调整后删除相关角色
注意事项 #
- 无法撤销:删除后无法恢复,请谨慎操作
- 用户影响:删除角色会影响所有被映射该角色的用户
- 权限检查:确保没有用户依赖该角色进行关键操作
- 系统角色:不要删除系统保留角色,除非完全了解后果
- 备份建议:删除前建议记录角色配置,以便需要时可以重建





