actiontech / dms

3 stars 2 forks source link

用户对数据源的无查询权限,但是能在工作台看到 #131

Closed LordofAvernus closed 10 months ago

LordofAvernus commented 10 months ago

问题背景:

test1用户只有对单个数据源的SQL查询权限,但是工作台能看到所有的数据源 c1d3127b-7180-4305-8add-ce5ed6153b60

754e6765-a015-4ea4-848e-a37b63f892b7

预期

用户在工作台界面只能看到有查询权限的数据源

复现流程

问题原因

用户登陆控制台时,会通过当前用户已有权限查数据源,建立新的连接cloudbeaver_connection_caches并存在数据库表中。后续会根据当前用户可见的数据源id作为筛选条件,查询连接,并将查询出来的连接授予用户。

由于使用数据源id查询连接的时候,代码遗漏了数据源id的赋值,导致当前所有连接均会被查询出来。所以所有用户均会看到所有的连接信息

rocky114 commented 10 months ago

image 查询cloudbeaver_connection_caches条件为空,导致数据都被查询出来授权给test访问

taolx0 commented 9 months ago

UI: main-ee 09c032e4 DMS: main-ee 0f03f1dd12 SQLE: main-ee daee60eff4 20240201110844

Gygkimo95 commented 9 months ago

平台有两个数据源 image

给user1授予mysql数据源上的权限 image

用user1账号登录SQLE,打开SQL工作台,只能看到被授权的mysql数据源,符合预期 image