达梦数据库创建视图时提示没有查询权限@TOC
环境:达梦数据库(DM8)
问题:新建了一个名为TEST的用户,想从已经存在的DMHR.EMPLOYEE表中查询出部分数据,用该数据集在TEST模式下生成一张视图(TEST.V1)。在用SYSDBA用户执行 CREATE VIEW TEST.V1 AS SELECT EMPLOYEE_NAME FROM DMHR.EMPLOYEE 时提示对【EMPLOYEE】没有查询权限。
解决:首先我尝试给SYSDBA赋查询EMPLOYEE表的权限,赋了之后继续查询仍然报相同的错误。这个时候就很奇怪了,查询了SYSDBA的权限之后发现这个账号是有对EMPLOYEE表的查询条件权限的,并且我将SELECT EMPLOYEE_NAME FROM DMHR.EMPLOYEE单独执行,是有结果集被查询出来的。在询问了大神之后,得知需要给TEST用户进行权限赋值,grant select on dmhr.employee to test; 给TEST用户赋权限之后再次执行建视图的语句,成功执行。
总结:因为TEST模式的所有者是TEST用户,所以需要给TEST用户赋上相应的权限才能够进行操作,如果不给TEST赋权限却能够创建此视图,就显得不够安全了。