一、问题

 今天在登录Oracle数据库的PDB用户时,报了下面错误

ERROR:ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用

就很懵,怎么突然登录不上了,也没改什么东西呀?

官方解释:某些数据库操作(例如启动数据库或连接到数据库)只允许具有特定权限的用户执行。如果尝试在没有给定权限的情况下进行此操作,则您将收到此错误。

只允许具有一定特权的用户访问,非特权用户访问时,就会出现这个错误

常见案例:ORA-01035错误常常发生在当用户尝试登录Oracle时,由于用户缺少RESTRICTED SESSION特权,而没有足够的权限创建会话。

二、分析

提示很清楚了就是权限问题,但是问题是怎么出现的,这就不知道了,貌似跟oracle重启有关系吧

ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用_用户登录

查看下用户所拥有的系统权限

select * from DBA_SYS_PRIVS where grantee = 'username';
  • 1.

查看下用户所拥有的对象权限

select * from dba_tab_privs where grantee = 'username';
  • 1.

三、解决

解决办法有两种

1.通过管理员用户直接赋给普通用户RESTRICTED SESSION权限

GRANT RESTRICTED SESSION TO username;
  • 1.

再看下用户的系统权限,已经有了RESTRICTED SESSION的权限了,试了下可以正常登录了

2.更改数据库的模式,修改服务配置,这个个人感觉不稳妥吧。