starrocks3.1.2版本root权限被修改

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】starrocks3.1.2版本root权限被修改,root用户对VIEW的SELECT/ALTER权限丢失。
在image文件中view的权限416符合预期。show grants不符合预期。
{“n”:“root”,“ma”:0,“p”:[],“s”:[],“c”:“built-in root role which has all privileges on all objects”,“m2”:{“DATABASE”:[{“a”:{“b”:12058912},“o”:{“clazz”:“DbPEntryObject”,“ci”:-1,“i”:“ALL_DATABASES_UUID”},“g”:false}],“MATERIALIZED_VIEW”:[{“a”:{“b”:65952},“o”:{“clazz”:“MaterializedViewPEntryObject”,“ci”:-11,“d”:“ALL_DATABASES_UUID”,“t”:“ALL_TABLES_UUID”},“g”:false}],“GLOBAL_FUNCTION”:[{“a”:{“b”:2080},“o”:{“clazz”:“FunctionPEntryObject”,“d”:-4,“functionId”:-3},“g”:false}],“VIEW”:[{“a”:{“b”:416},“o”:{“clazz”:“ViewPEntryObject”,“ci”:-11,“d”:“ALL_DATABASES_UUID”,“t”:“ALL_TABLES_UUID”},“g”:false}],“USER”:[{“a”:{“b”:131072},“o”:{“clazz”:“UserPEntryObject”},“g”:false}],“TABLE”:[{“a”:{“b”:2032},“o”:{“clazz”:“TablePEntryObject”,“ci”:-1,“d”:“ALL_DATABASES_UUID”,“t”:“ALL_TABLES_UUID”},“g”:false}],“CATALOG”:[{“a”:{“b”:264480},“o”:{“clazz”:“CatalogPEntryObject”,“i”:-1},“g”:false}],“SYSTEM”:[{“a”:{“b”:255913998},“g”:false}],“RESOURCE”:[{“a”:{“b”:2336},“o”:{“clazz”:“ResourcePEntryObject”},“g”:false}],“RESOURCE_GROUP”:[{“a”:{“b”:288},“o”:{“clazz”:“ResourceGroupPEntryObject”,“i”:-1},“g”:false}],“STORAGE_VOLUME”:[{“a”:{“b”:2336},“o”:{“clazz”:“StorageVolumePEntryObject”,“id”:“ALL_STORAGE_VOLUMES_ID”},“g”:false}],“FUNCTION”:[{“a”:{“b”:2080},“o”:{“clazz”:“FunctionPEntryObject”,“d”:-2,“functionId”:-3},“g”:false}]}}


【背景】无其他操作
【业务影响】
【是否存算分离】
【StarRocks版本】例如:3.1.2
【附件】

  • 慢查询:
    • Profile信息
    • 并行度:show variables like ‘%parallel_fragment_exec_instance_num%’;
    • pipeline是否开启:show variables like ‘%pipeline%’;
    • be节点cpu和内存使用率截图
  • 查询报错:
  • be crash
    • be.out
  • 外表查询报错
    • be.out和fe.warn.log

你好 前提是有做过什么操作吗 类似与升级这些?

老师,你好。没有升级过。FE重启后,VIEW的权限能恢复。随后不定时,权限就会丢失。
从咱们的权限体系来看,内置角色初始化后就disableMutale了。RolePrivilegeCollectionV2更改权限也都会校验assertMutable

你 show grants for role root 看下

老师 show grants for role root 就是问题提问里的截图

这个问题有点奇怪……正常 root role肯定不能修改,
现在的 workaround 可以这样,
create role root_ext;
grant root to role root_ext;
grant alter, select on all view in all databases to role root_ext;

代码我们再看下,

https://github.com/StarRocks/starrocks/pull/46411
fix