
问题现象:
DM管理工具,查看当前用户下,表列信息时,报错:
错误号: -5504
错误消息: 没有[SYS.V$CIPHERS]对象的查询权限


实际该用户是可以正常desc 查看列,正常select查看数据。

对比达梦的另一个工具:SQLark百灵,就没有这个问题:

可以正常查看到表的列信息。

问题分析:
用工具查看表列信息时,DM管理工具Manager比SQLark工具需要更多的权限,也就是select on SYS.V$CIPHERS 权限。
解决方案:
个人认为,这应该属于DM管理工具的问题,查看表列信息时需要更多的,实际又完全可以避免的权限。
查看达梦官网,针对这种没有[SYS.V
C
I
P
H
E
R
S
]
对象的查询权限的问题,建议添加
S
Y
S
.
V
CIPHERS]对象的查询权限的问题,建议添加SYS.V
CIPHERS]对象的查询权限的问题,建议添加SYS.VCIPHERS对象查询权限,或者授予VTI角色。
相关权限说明:
https://eco.dameng.com/document/dm/zh-cn/pm/dm8-safety-appendix

测试,添加[SYS.V$CIPHERS]对象的查询权限后,确实可以查看到列信息了:
SQL> grant select on SYS.V$CIPHERS to cjc;

但是这似乎违背了权限最小化原则,权限越小,当出现误操作或者BUG时,可破坏的范围越小,过大的权限可能会出现看到了不该看到数据或执行了不该执行的操作 ,而不应该因为管理工具权限没控制好,而去添加[SYS.V$CIPHERS]、VDI、SVI、SOI等权限。
类似的问题
类似的问题还有这个:
错误号: -5504
错误信息:没有[SYS.SYSOBJECTS]对象的查询权限
这个错误更离谱,为了获得[SYS.SYSOBJECTS]对象的查询权限,需要添加SOI 角色权限,而SOI对应了51个对象的查询权限,多加了50个对象的查询权限,详细内容可以查看我的另一篇文章:
https://mp.weixin.qq.com/s/EjEf8QNGFHMgGRFVyhQCiA?scene=1&click_id=1
奇葩的操作
还有一种场景,在拥有[SYS.SYSOBJECTS]对象的查询权限情况下,使用达梦管理工具还会报错:
错误号: -5504
错误消息: 没有[SYS.V$CIPHERS]对象的查询权限
就是通过 表空间—模式—表 的路径去查看表信息,这种查询方式很少见,今天看到某应用厂商通过这种方式去查看,也是非常意外,正常应该时去 模式—表 去查看。


而SQLark的报错更清晰,更容易理解,建议DM管理工具 参考 SQLark去优化一些细节。


欢迎关注我的公众号《IT小Chen》
1608

被折叠的 条评论
为什么被折叠?



