权限漏洞,没有查询表权限的人可以提工单进行修改
重现步骤
前置条件:
archery系统有2个资源组: A系统_资源组 (实例2个:A系统_只读、A系统_写) B系统_资源组 (实例2个:B系统_只读、B系统_写)
系统允许受影响行数为10以内的时候,自动审核。
测试人员小王现有以下权限 。
- 有“在线查询”的菜单。
- 有“权限管理”的菜单。
- 有“SQL上线”的菜单权限, 没有审核权限。可自己执行权限。
小王的角色是 可以对B系统做所有操作,可以查询,可以提交表结构。 只能偶尔申请A系统的查询权限,不能修改A系统的数据。
预期外的结果
小王现在在“在线查询”里,能看到 “A系统_只读”, "B系统_只读" 但查询不了,符合预期。 为什么他可以在"SQL上线"菜单中,提交变更SQL,然后自己执行了?
我现在的解决方案是: 一个实例一个资源组。
小王有: 只读_A系统_资源组 只读_B系统_资源组 写_B系统_资源组
不给他 A系统_写_资源组 然后修改archery代码,在“SQL上线”菜单,右边的“请选择组”下拉框过滤掉 只读的资源组。
我这样配置有无问题,是我哪里搞错了吗?
日志文本
No response
版本
1.8.3
部署方式
Docker
是否还有其他可以辅助定位问题的信息?比如数据库版本等
No response
请用master分支代码重试看能否复现
请用master分支代码重试看能否复现
复现的。 某用户对实例查询无权限,但是能提交工单,满足了自动审核,然后自己执行了。
可以和数据库用户权限搭配实现一下
有权限叫做sql|premission|执行SQL上线工单(仅自己提交)和sql|permission|执行SQL上线工单(资源组粒度),配置项管理里面有个叫做上线自动审批的功能,这几处看看有没有开启或者赋予权限。