一、问题
今天在登录Oracle数据库的PDB用户时,报了下面错误
ERROR:ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
就很懵,怎么突然登录不上了,也没改什么东西呀?
官方解释:某些数据库操作(例如启动数据库或连接到数据库)只允许具有特定权限的用户执行。如果尝试在没有给定权限的情况下进行此操作,则您将收到此错误。
只允许具有一定特权的用户访问,非特权用户访问时,就会出现这个错误
常见案例:ORA-01035错误常常发生在当用户尝试登录Oracle时,由于用户缺少RESTRICTED SESSION特权,而没有足够的权限创建会话。
二、分析
提示很清楚了就是权限问题,但是问题是怎么出现的,这就不知道了,貌似跟oracle重启有关系吧
查看下用户所拥有的系统权限
select * from DBA_SYS_PRIVS where grantee = 'username';
查看下用户所拥有的对象权限
select * from dba_tab_privs where grantee = 'username';
三、解决
解决办法有两种
1.通过管理员用户直接赋给普通用户RESTRICTED SESSION权限
GRANT RESTRICTED SESSION TO username;
再看下用户的系统权限,已经有了RESTRICTED SESSION的权限了,试了下可以正常登录了
2.更改数据库的模式,修改服务配置,这个个人感觉不稳妥吧。