【案例】ORA-01031: insufficient privileges处理记录

ORA-01031: insufficient privileges处理记录

SYS@orcl1> conn srv_elon/elon
Connected.
srv_elon@orcl1>
srv_elon@orcl1> select count(*) from "SCOTT"."V_EMPLOYEES" ;
select count(*) from "SCOTT"."V_EMPLOYEES"
*
ERROR at line 1:
ORA-01031: insufficient privileges


SYS@orcl1> select OWNER,OBJECT_NAME,OBJECT_TYPE from dba_objects where OBJECT_NAME='V_EMPLOYEES';

SCOTT V_EMPLOYEES VIEW

SYS@orcl1>
查视图定义:
SYS@orcl1> set long 9999
SYS@orcl1> select DBMS_METADATA.GET_DDL('VIEW','V_EMPLOYEES','SCOTT') from dual;

CREATE OR REPLACE FORCE VIEW "SCOTT"."V_EMPLOYEES" ("??ID", "????", "???"
, "????", "????", "??????", "??????", "??????", "????", "????") AS
select t.id as ??ID,
'' as ????,
t.testdate || '+' || t.sampleid || '+' || t.machineid as ???,
CASE WHEN
......
from sh.t_sample t, sh.t_result a
where t.testdate = a.testdate
and t.sampleid = a.sampleid
and t.machineid = a.machineid
order by t.id

SYS@orcl1> grant select on sh.t_result to SCOTT with grant option;

Grant succeeded.

SYS@orcl1> grant select on sh.t_sample to SCOTT with grant option;

Grant succeeded.


然后,测试成功
srv_elon@orcl1> select count(*) from sh.V_EMPLOYEES;

COUNT(*)
----------
342

原文地址:https://www.cnblogs.com/elontian/p/12870210.html