项目场景:
最近在公司上了一个新的功能,用的数据库是polardb,微服务用的dubbo
问题描述
但是上完线,访问的时候 多个页面直接报500错误,无奈只能查询日志。报错图片如下:
从日志中可以看到最核心的错是:com.aliyun.polardb.util.PSQLException._serverError: ‘com.aliyun.polardb.util.ServerErrorMessage’ could not be instantiated(ServerErrorMessage这个类不能初始化)。但是别的历史功能页面还能用。我猜测是新加的表的问题。但是找db查询数据库表都是可以查询的。一时丈二和尚,摸不着头脑
原因分析:
然后让db在polardb后台查询访问记录,发现请求新的表都报42501错误。查询官网https://help.aliyun.com/zh/polardb/polardb-for-oracle/iggsplqsznn33ki0?spm=a2c4g.11186623.0.0.4c2d5e08GcjGvj
insufficient_privilege说明微服务访问用的账号权限不足。
解决方案:
给账号赋值访问权限,语句: GRANT ALL PRIVILEGES ON 表名 TO 用户名;