StarRocks SHOW USERS 命令详解:查看系统全部用户标识的语法、权限与源码实现
StarRocks SHOW USERS 命令详解查看系统全部用户标识的语法、权限与源码实现【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocks导读SHOW USERS是 StarRocks 账户管理体系中用于**列出系统中全部用户标识User Identity**的基础命令。与 MySQL 中的SHOW USERS语义不同StarRocks 返回的不是单纯的用户名而是usernamehost形式的完整用户标识。本文以官方文档为骨架结合 FE 端语法定义、AST 节点、执行器与授权管理器源码完整讲解该命令的语法、返回字段、权限要求、典型使用场景及其底层实现原理帮助你快速掌握查看系统里有哪些用户这一日常运维与审计操作的完整知识。一、命令概述SHOW USERS 能做什么SHOW USERS用于显示系统中所有已创建的用户。需要特别注意的是文档明确指出Users mentioned here are user identities, not user names.即该命令输出的不是单纯的用户名而是用户标识user_identity。在 StarRocks 中一个用户由user_name与host两部分共同唯一标识格式为usernameuserhost。这意味着同一个用户名可能对应多个不同的用户标识例如jack%与jack172.10.1.10是两个不同的用户因此只有以用户标识为单位进行展示才能准确反映系统的用户全貌。关于用户标识的更多细节可参阅 CREATE USER 文档中关于user_identity的说明user_identity由user_name和host两部分组成格式为usernameuserhosthost部分可以使用%进行模糊匹配若未指定host默认使用%表示该用户可以从任意主机连接 StarRocks。该命令自 v3.0 起支持。若要查看某个具体用户被授予的权限可配合使用SHOW GRANTS FOR user_identity;详见 SHOW GRANTS。二、权限要求仅user_admin角色可执行执行SHOW USERS存在严格的权限门槛。官方文档通过公共提示块明确要求Only users with theuser_adminrole has the privilege to perform this operation.即只有拥有user_admin内置角色的用户才有权限列出系统中的全部用户。user_admin是 StarRocks 提供的五个内置角色之一其定位是用户管理员可用于管理用户、角色与授权详见 内置角色说明。这一点在 FE 源码中也有印证在 AuthorizerStmtVisitor.java 的visitShowUserStatement中当语句为列出全部用户形态时会调用Authorizer.checkSystemAction(context, PrivilegeType.GRANT)进行系统级 GRANT 权限校验未通过校验时抛出AccessDeniedException并报告访问被拒绝。可以推断user_admin之所以能执行该命令正是因为它具备这一系统级权限能力。对比提示与SHOW USERS不同SHOW GRANTS 允许所有角色和用户查看授予自己的权限仅查看指定用户或角色的权限时才要求user_admin。三、语法SHOW USERS该命令不接受任何参数、通配符或谓词执行后一次性返回系统中全部用户标识。在语法层StarRocks 使用 ANTLR 文法定义该语句。在 StarRocks.g4 中可以看到showUserStatement : SHOW (USER | USERS) showPredicateClauses ;即SHOW USER与SHOW USERS共用同一条语法规则。对应的 AST 节点为 ShowUserStmt.java它通过一个isAll布尔标志区分两种形态SHOW USERS列出系统中全部用户标识SHOW USER仅显示当前会话用户自身的用户标识。官方文档仅对SHOW USERS形态做出承诺SHOW USER的行为属源码结构推断可作为补充了解。四、返回字段FieldDescriptionUserThe user identity用户标识。结果集仅包含一列User每一行是一个形如usernamehost的完整用户标识字符串。结合 AuthorizationMgr.java 的实现可知该字符串由UserIdentity.toString()生成与创建用户时所使用的user_identity表示形式一致。五、示例显示系统中的全部用户mysql SHOW USERS; ----------------- | User | ----------------- | wybing5% | | root% | | admin% | | star% | | wybing_30% | | simo% | | wybing1% | | wybing2% | -----------------从示例输出可以看出两个要点输出的是用户标识而非用户名例如wybing5%与wybing1%是不同的用户标识即使前缀相似也是完全独立的两个用户。root、admin等内置用户也出现在列表中系统初始化阶段创建的内置用户与其他用户一同列出便于管理员一览全局。六、典型实战组合SHOW USERS SHOW GRANTSSHOW USERS单独使用时只提供有哪些用户这一层信息。在实际运维中更完整的用户盘点流程是与权限查询命令配合使用盘点用户全貌SHOW USERS;查看指定用户的授权情况SHOW GRANTS FOR wybing5%;查看当前用户的授权情况所有用户均可执行SHOW GRANTS; SHOW GRANTS FOR CURRENT_USER();SHOW GRANTS 的结果集包含UserIdentity、Catalog、Grants三列其中UserIdentity被查询的用户标识Catalog授权发生的 catalog内部 catalog 返回default外部 catalog 返回其名称角色授予场景返回NULLGrants具体的 GRANT 语句描述。通过SHOW USERS拿到全部用户标识后即可逐个使用SHOW GRANTS FOR user_identity完成对系统内所有用户授权状况的巡检例如排查是否存在权限过大的闲置账号。七、源码级实现原理SHOW USERS的完整执行链路贯穿 StarRocks FE 的语法解析、语义分析与执行三个阶段涉及的核心文件如下1. 语法解析文法定义StarRocks.g4 中的showUserStatement规则AST 节点ShowUserStmt.java通过isAll标志区分全部用户与当前用户两种形态。2. 权限校验在 AuthorizerStmtVisitor.java 的visitShowUserStatement中若statement.isAll()为 true即SHOW USERS执行Authorizer.checkSystemAction(context, PrivilegeType.GRANT)校验系统级 GRANT 权限校验失败时通过AccessDeniedException.reportAccessDenied报告访问被拒绝并终止执行。这解释了为什么只有具备user_admin角色具备系统管理类权限的用户才能执行本命令。3. 结果生成在 ShowExecutor.java 的visitShowUserStatement中if (statement.isAll()) { AuthorizationMgr authorizationManager GlobalStateMgr.getCurrentState().getAuthorizationMgr(); ListString users authorizationManager.getAllUsers(); users.forEach(u - rowSet.add(Lists.newArrayList(u))); } else { ListString row Lists.newArrayList(); row.add(context.getCurrentUserIdentity().toString()); rowSet.add(row); } return new ShowResultSet(showResultMetaFactory.getMetadata(statement), rowSet);核心数据来源是 AuthorizationMgr.getAllUsers()该方法在读锁保护下遍历授权管理器内存中的userToPrivilegeCollection映射keySet 为全部UserIdentity将每个用户标识序列化为字符串后返回。可以推断SHOW USERS的结果实时反映 FE 内存中已加载的用户集合用户一经CREATE USER创建即会出现在列表中被DROP USER删除后则立即消失。八、注意事项与常见问题区分用户与用户标识SHOW USERS输出的是user_identity不是用户名。若只想查看当前登录用户的信息可使用SHOW USER或查看SHOW GRANTS的结果。权限不足时报错非user_admin角色执行SHOW USERS会因系统级 GRANT 权限校验失败而被拒绝这与查看自身授权的SHOW GRANTS所有用户可执行形成鲜明对比。版本要求该命令自v3.0起支持使用前请确认集群版本。结果规模该命令一次性返回全部用户标识无过滤与分页参数。在用户数量庞大的集群中输出行数等于系统中用户标识总数可与客户端的分页/检索能力配合使用。命令无参数SHOW USERS不接受用户名、host 或 LIKE 通配符等过滤条件如需定向查询某用户的授权请使用SHOW GRANTS FOR user_identity。九、相关命令SHOW USERS是用户生命周期管理命令族中的查询一环与之配套的常用命令包括CREATE USER创建用户含认证方式、默认角色、用户属性ALTER USER修改用户认证信息与默认角色DROP USER删除用户SHOW GRANTS查看用户或角色的授权明细。更完整的权限体系背景可参阅 用户与权限总览 与 内置角色说明。【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocks创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

旧Mac装新版macOS:OpenCore Legacy Patcher 快速上手指南

旧Mac装新版macOS:OpenCore Legacy Patcher 快速上手指南

旧Mac装新版macOS:OpenCore Legacy Patcher 快速上手指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher 是一款基于 Py…

2026/9/19 8:46:58 阅读更多 →
PCF空间单细胞蛋白组技术在CML骨髓微环境研究中的应用

PCF空间单细胞蛋白组技术在CML骨髓微环境研究中的应用

1. 研究背景与核心发现慢性髓系白血病(CML)是一种由BCR::ABL1融合基因驱动的造血系统恶性肿瘤。虽然酪氨酸激酶抑制剂(TKIs)的问世显著改善了患者预后,但白血病干细胞(LSCs)在骨髓微环境&#x…

2026/9/19 8:46:58 阅读更多 →
美甲师技术成长曲线与职业突破策略

美甲师技术成长曲线与职业突破策略

1. 从指尖艺术看职业成长曲线三年前刚入行时,我完全没想到美甲这个看似简单的服务行业,会让我经历如此深刻的技术成长与认知迭代。每天面对形形色色的顾客手指,从最初的单纯模仿样式,到现在能根据甲型、肤色、职业特征定制方案&am…

2026/9/19 8:46:58 阅读更多 →

最新新闻

MMDetection 部署 ConvNeXt-V2:基于 FCMAE 预训练与 GRN 骨干的 Mask R-CNN 微调实战

MMDetection 部署 ConvNeXt-V2:基于 FCMAE 预训练与 GRN 骨干的 Mask R-CNN 微调实战

人工智能计算机视觉深度学习模型评测 【免费下载链接】mmdetection OpenMMLab Detection Toolbox and Benchmark 项目地址: https://gitcode.com/gh_mirrors/mm/mmdetection 点击查看 免费下载 本文以 MMDetection 仓库中 projects/ConvNeXt-V2 子项目为核心&#…

2026/9/19 9:37:17 阅读更多 →
QuickPing实战:从ping命令到图形化网络故障排查

QuickPing实战:从ping命令到图形化网络故障排查

从一次凌晨两点的故障排查说起。那天机房一台核心设备失联,业务群里的消息一条接一条,我打开终端,手动敲ping 192.168.10.1 -t,盯着一串Request timed out干瞪眼。旁边同事递过来一个U盘,里面装着一个不到1MB的小工具Q…

2026/9/19 9:37:17 阅读更多 →
QuickPing实战指南:用可视化批量Ping工具快速排查网络故障

QuickPing实战指南:用可视化批量Ping工具快速排查网络故障

1. 初识 QuickPing:为什么一个图形化 ping 工具能让我少熬几个夜干网络运维这行,最怕的就是半夜被电话叫醒,说“某某服务器不通了”。平时排查网络问题,第一反应就是打开命令行敲ping,对吧?ping www.baidu.…

2026/9/19 9:37:17 阅读更多 →
移动APP测试核心策略:从功能验证到自动化与上线准入

移动APP测试核心策略:从功能验证到自动化与上线准入

简介:面向移动APP测试入门与进阶的实用学习资料,内容从安卓虚拟环境Genymotion配置、adb常用命令入手,逐步覆盖安装测试、卸载测试、功能测试、通知栏与交互测试等核心模块,并延伸到Activity、Service等四大组件及性能测试方法&am…

2026/9/19 9:37:17 阅读更多 →
驻场运维服务实践指南:巡检、监控、变更与备份恢复

驻场运维服务实践指南:巡检、监控、变更与备份恢复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 9:37:17 阅读更多 →
N_m3u8DL-RE 完整教程:快速掌握流媒体下载、加密视频解密与直播录制

N_m3u8DL-RE 完整教程:快速掌握流媒体下载、加密视频解密与直播录制

N_m3u8DL-RE 完整教程:快速掌握流媒体下载、加密视频解密与直播录制 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N…

2026/9/19 9:36:17 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →