为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:windows
【CPU】:
【问题描述】*: 为什么(SELECT COMMENT$ FROM SYS.SYSTABLECOMMENTS WHERE SCHNAME = SCHEMAS.NAME AND TVNAME = TABS.NAME) AS REMARKS 这条sql,我用一个权限较低的用户去执行会提示没有查询权限,但是通过jdbc的getTables方法去执行,却可以正确执行呢?
首先权限较低的用户肯定没权限查数据字典,提示没有查询权限是正常的。同样的用户通过jdbc的getTables方法,确实也能获取到SYSTABLECOMMENTS这个表名。
这是因为,JDBC中调用元数据的方法通常会在数据库中执行预定义的系统调用,这些调用已经经过优化并配置为允许较低权限的用户访问特定的元数据。而且在JDBC中这些调用都被认为是安全的,因为这些调用仅限于检索元数据,不涉及实际数据操作。
可给出对应的实现部分代码吗