使用dm全量同步预检用户权限优化

【需求涉及的问题场景】
在添加同步任务时,task-mode: all为全量,用户没有Reload,Process可以很好的提示出来,但是用户没有select权限,并没有提示出来,而是直接提示某个表不存在。
【期望的需求行为】
1.期望dm能够在task-mode: all模式下去预检用户的select权限
2.在tidb的用户群里有小伙伴提出dm同步的表一定要改造,直接创建出来的表可能会存在热点写等问题,尤其大表、频繁更新的表。期望dm可以提醒用户或者直接给出优化建议。

这涉及到根本逻辑了,当你查询不到一个表的时候,是应该提示你有这个表,但是你没权限呢?还是直接说没有这个表呢?如果提示没权限,那本来我一个没有很多表权限的用户,能根据这个来推出数据库中有哪些表了。。。

1 个赞

这个和 DM 没关系,DM 只是把 mysql 的返回直接显示出来了而已。
mysql 也是这个逻辑,可以自己试试,对于没有权限的表提示不存在。

1 个赞

因为是全量同步,所以我觉得应该有select权限的检查

不是,你没明白我的意思,实际这是一种安全措施,dm是检查了表的select权限的,但是他不能告诉你是没有select权限,只能告诉你查不到这个表,明白吗?

1 个赞

我的意思是select是全量同步的前提,这里并没有涉及到安全问题,dm面向dba运维人员,不是大众用户可以枚举。

现在的权限肯定是走的一整套系统,和mysql是一致的,想要达到你的效果需要单独对dm全量同步进行改造了。。。。