Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

权限漏洞,没有查询表权限的人可以提工单进行修改 #2496

Open
feiazifeiazi opened this issue Jan 30, 2024 · 4 comments
Open

Comments

@feiazifeiazi
Copy link
Contributor

feiazifeiazi commented Jan 30, 2024

重现步骤

前置条件:

archery系统有2个资源组:
A系统_资源组 (实例2个:A系统_只读、A系统_写)
B系统_资源组 (实例2个:B系统_只读、B系统_写)

系统允许受影响行数为10以内的时候,自动审核。

测试人员小王现有以下权限 。

  1. 有“在线查询”的菜单。
  2. 有“权限管理”的菜单。
  3. 有“SQL上线”的菜单权限, 没有审核权限。可自己执行权限。

小王的角色是 可以对B系统做所有操作,可以查询,可以提交表结构。
只能偶尔申请A系统的查询权限,不能修改A系统的数据。

预期外的结果

小王现在在“在线查询”里,能看到 “A系统_只读”, "B系统_只读"
但查询不了,符合预期。
为什么他可以在"SQL上线"菜单中,提交变更SQL,然后自己执行了?

我现在的解决方案是:
一个实例一个资源组。

小王有:
只读_A系统_资源组
只读_B系统_资源组
写_B系统_资源组

不给他 A系统_写_资源组
然后修改archery代码,在“SQL上线”菜单,右边的“请选择组”下拉框过滤掉 只读的资源组。

我这样配置有无问题,是我哪里搞错了吗?

日志文本

No response

版本

1.8.3

部署方式

Docker

是否还有其他可以辅助定位问题的信息?比如数据库版本等

No response

@LeoQuote
Copy link
Collaborator

请用master分支代码重试看能否复现

@feiazifeiazi
Copy link
Contributor Author

请用master分支代码重试看能否复现

复现的。
某用户对实例查询无权限,但是能提交工单,满足了自动审核,然后自己执行了。

@yeepaysre
Copy link

可以和数据库用户权限搭配实现一下

@tonyhu214
Copy link
Contributor

有权限叫做sql|premission|执行SQL上线工单(仅自己提交)和sql|permission|执行SQL上线工单(资源组粒度),配置项管理里面有个叫做上线自动审批的功能,这几处看看有没有开启或者赋予权限。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants