文档解释
ORA-28556: authorization insufficient to access table
Cause: A query attempted to access a table in the non-Oracle system that is either privileged or has privileged columns.
Action: Contact the DBA for the non-Oracle system. The DBA can grant permission to access the privileged table or columns.
。
官方解释
平时,在使用Oracle数据库处理SQL语句时,可能会碰到ORA-28556: authorization insufficient to access table错误,该错误表明用户没有被授予足够的权限以访问特定表。
解决ORA-28556: authorization insufficient to access table的常见方法如下:
1.确认用户是否拥有对特定表的权限。可以使用SELECT grantee,privilege FROM dba_tab_privs WHERE grantee=username and table_name=XXX查询该用户对特定表的权限。
2.确认用户是否为表的拥有者,如果是,可以使用grant指令或grant options参数授权用户访问该表。
3.将指定用户添加到特定角色中,角色上已经授权的资源便可以被用户访问到。
4.通过直接授予用户必要的权限来访问特定表。要授予用户对特定表的权限,可以使用grant SELECT ON XXX TO 用户名 语句。
5.最后,如果以上的步骤均未解决问题,则可以考虑使用FLASHBACK_USER恢复数据库和用户的状态到授权之前。