达梦数据库报无查询权限解决方法
问题描述
苍穹mc日志报无查询权限,如图:
No select privilege on object [SYSDUAL]
解决方法
DM数据库查看对应的数据库用户(COSMIC_MC)赋予的角色权限,可以看到,COSMIC_MC用户被赋予了PUBLIC,RESOURCE两个角色:
查看RESOURCE角色对应的权限项:
看到是有查询表的权限(SELECT TABLE)。再回看详细日志,是查询SYSDUAL,这是系统伪表,还要赋予系统表查询权限对应的角色(SOI):
grant SOI to COSMIC_MC;
赋权后,问题解决,如果其他业务库用户也尚未授权SOI权限,建议都进行授权。
适用版本
DM8
附录
角色管理
–查看系统所有角色信息
select * from dba_roles;
–内置角色分类
DB_AUDIT 开头为审计相关角色,默认赋给了 SYSAUDITOR;
DB_POLICY 开头的为安全相关角色,默认赋给 SYSSSO;
其他 DBA、RESOURCE、PULIBC、SOI、VTI 等默认赋给了 SYSDBA。
DBA:系统管理员角色,拥有除审计和强制访问控制之外的几乎所有权限,
RESOURCE:拥有 CREATE 创建表、索引、视图等对象定义的权限和数据操作权限(DML 操作)。
PULIBC:拥有数据操作权限(增删改查操作),没有创建表、视图等对象定义权限。
SOI:具有查询系统表(SYS 开头的)查询权限,新建用户一般需要赋此权限。
VTI 具有查询动态视图(v$开头的)权限。
角色禁用和启用
SP_SET_ROLE
角色禁用后,对应的权限也不再生效。
创建角色
create role r2;
赋予角色权限(可以是对象权限、系统权限,也可以是角色权限)
grant r1 to r2;
grant create table to r2;
grant select on dmhr.department to r2;
create user u1 IDENTIFIED by Dameng123;
grant r2 to u1;
达梦数据库报无查询权限解决方法
本文2024-09-23 01:13:05发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144527.html