[20240826]奇怪ORA-01031 insufficient privileges报错.txt --//遇到的奇怪ORA-01031 insufficient privileges情况,做一个分析: 1.环境: SYS@book01p> @ver2 ============================== PORT_STRING : x86_64/Linux 2.4.xx VERSION : 21.0.0.0.0 BANNER : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production BANNER_FULL : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0 BANNER_LEGACY : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production CON_ID : 0 PL/SQL procedure successfully completed. 2.测试: SYS@book01p> select count(1) from hist_head$ ; COUNT(1) ---------- 50435 --//没有任何问题. SYS@book01p> select * from hist_head$ ; select * from hist_head$ * ERROR at line 1: ORA-01031: insufficient privileges --//换成*报错,感觉是否表出了问题,因为前面通过索引就可以完成执行计划. SYS@book01p> select /*+ full(hist_head$) */ count(1) from hist_head$ ; COUNT(1) ---------- 50435 SYS@book01p> select /*+ index(hist_head$) */ * from hist_head$ where rownum=1; select /*+ index(hist_head$) */ * from hist_head$ where rownum=1 * ERROR at line 1: ORA-01031: insufficient privileges --//仔细看*位置执行hist_head$,仔细看拼写也没有错误啊. SYS@book01p> @ desc hist_head$ Name Null? Type ------------------------------- -------- ---------------------------- 1 OBJ# NOT NULL NUMBER 2 COL# NOT NULL NUMBER 3 BUCKET_CNT NOT NULL NUMBER 4 ROW_CNT NOT NULL NUMBER 5 CACHE_CNT NUMBER 6 NULL_CNT NUMBER 7 TIMESTAMP# DATE 8 SAMPLE_SIZE NUMBER 9 MINIMUM NUMBER 10 MAXIMUM NUMBER 11 DISTCNT NUMBER 12 LOWVAL RAW(1000) 13 HIVAL RAW(1000) 14 DENSITY NUMBER 15 INTCOL# NOT NULL NUMBER 16 SPARE1 NUMBER 17 SPARE2 NUMBER 18 AVGCLN NUMBER 19 SPARE3 NUMBER 20 SPARE4 NUMBER 21 MINIMUM_ENC RAW(1000) 22 MAXIMUM_ENC RAW(1000) --//有4个raw类型.难道是不能访问raw类型吗? SYS@book01p> select DENSITY,AVGCLN from hist_head$ where rownum=1; DENSITY AVGCLN ---------- ---------- 0 0 --//这样看视乎是里面某个访问某个字段时报错.5个5个一组尝试. SYS@book01p> select OBJ#,COL#,BUCKET_CNT,ROW_CNT,CACHE_CNT from hist_head$ where rownum=1; OBJ# COL# BUCKET_CNT ROW_CNT CACHE_CNT ---------- ---------- ---------- ---------- ---------- 10040 3 0 0 0 SYS@book01p> select TIMESTAMP#,SAMPLE_SIZE,MINIMUM,MAXIMUM,DISTCNT from hist_head$ where rownum=1; select TIMESTAMP#,SAMPLE_SIZE,MINIMUM,MAXIMUM,DISTCNT from hist_head$ where rownum=1 * ERROR at line 1: ORA-01031: insufficient privileges --//分开尝试发现 SYS@book01p> select MINIMUM from hist_head$ where rownum=1; select MINIMUM from hist_head$ where rownum=1 * ERROR at line 1: ORA-01031: insufficient privileges SYS@book01p> select MAXIMUM from hist_head$ where rownum=1; select MAXIMUM from hist_head$ where rownum=1 * ERROR at line 1: ORA-01031: insufficient privileges --//发现MINIMUM,MAXIMUM存在问题. SYS@book01p> select LOWVAL from hist_head$ where rownum=1; select LOWVAL from hist_head$ where rownum=1 * ERROR at line 1: ORA-01031: insufficient privileges SYS@book01p> select HIVAL from hist_head$ where rownum=1; select HIVAL from hist_head$ where rownum=1 * ERROR at line 1: ORA-01031: insufficient privileges --//发现LOWVAL,HIVAL存在问题. SYS@book01p> select DENSITY,INTCOL#,SPARE1,SPARE2,AVGCLN,SPARE3,SPARE4,MINIMUM_ENC,MAXIMUM_ENC from hist_head$ where rownum=1 2 @ pr ============================== DENSITY : 0 INTCOL# : 3 SPARE1 : 0 SPARE2 : 2 AVGCLN : 0 SPARE3 : SPARE4 : MINIMUM_ENC : MAXIMUM_ENC : PL/SQL procedure successfully completed. --//MINIMUM_ENC,MAXIMUM_ENC也是raw类型,没有报错。 SYS@book01p> select DENSITY,INTCOL#,SPARE1,SPARE2,AVGCLN,SPARE3,SPARE4,MINIMUM_ENC,MAXIMUM_ENC from hist_head$ where rownum=1 and MINIMUM_ENC is not null 2 @pr PL/SQL procedure successfully completed. SYS@book01p> select DENSITY,INTCOL#,SPARE1,SPARE2,AVGCLN,SPARE3,SPARE4,MINIMUM_ENC,MAXIMUM_ENC from hist_head$ where rownum=1 and MAXIMUM_ENC is not null 2 @pr PL/SQL procedure successfully completed. --//MINIMUM_ENC,MAXIMUM_ENC全部都是null. SYS@book01p> select * from v$reserved_words where KEYWORD in ('MINIMUM','MAXIMUM','LOWVAL','HIVAL') 2 @pr ============================== KEYWORD : MINIMUM LENGTH : 7 RESERVED : N RES_TYPE : N RES_ATTR : N RES_SEMI : N DUPLICATE : N CON_ID : 0 PL/SQL procedure successfully completed. --//就1个MINIMUM是保留字.RES*字段的值都是N,表示怎么意思。 SCOTT@book01p> create table t1( MINIMUM number); Table created. SCOTT@book01p> select * from t1; no rows selected SCOTT@book01p> insert into t1 values (1); 1 row created. SCOTT@book01p> commit ; Commit complete. SCOTT@book01p> select * from t1; MINIMUM ---------- 1 --//建表也没有问题啊. select OBJ# ,COL# ,BUCKET_CNT ,ROW_CNT ,CACHE_CNT ,NULL_CNT ,TIMESTAMP# ,SAMPLE_SIZE --,MINIMUM --,MAXIMUM ,DISTCNT --,LOWVAL --,HIVAL ,DENSITY ,INTCOL# ,SPARE1 ,SPARE2 ,AVGCLN ,SPARE3 ,SPARE4 ,MINIMUM_ENC ,MAXIMUM_ENC from hist_head$ ; --//测试确实只要不包括这4个字段,查询不存在问题. --//难道21c做了一些限制,一些字段不可以查询吗? Select PRIVILEGE, GRANTEE, GRANTABLE, GRANTOR, NULL COLUMN_NAME from sys.dba_tab_privs where table_name = 'HIST_HEAD$' and owner='SYS' UNION ALL Select PRIVILEGE, GRANTEE, GRANTABLE, GRANTOR, COLUMN_NAME from sys.dba_col_privs where table_name = 'HIST_HEAD$' and owner='SYS' order by grantee; --//没有输出. SELECT o.object_name, o.object_type, NVL(d.alt, '-/-') alt, NVL(d.aud, '-/-') aud, NVL(d.com, '-/-') com, NVL(d.del, '-/-') del, NVL(d.gra, '-/-') gra, NVL(d.ind, '-/-') ind, NVL(d.ins, '-/-') ins, NVL(d.loc, '-/-') loc, NVL(d.ren, '-/-') ren, NVL(d.sel, '-/-') sel, NVL(d.upd, '-/-') upd, --NVL(d.REF, '-/-') REF, NVL(d.exe, '-/-') exe, NVL(d.cre, '-/-') cre, NVL(d.rea, '-/-') rea, NVL(d.wri, '-/-') wri, NVL(d.fbk, '-/-') fbk FROM sys.USER_OBJ_AUDIT_OPTS d, sys.USER_OBJECTS o WHERE d.object_name(+) = o.object_name and d.object_type(+) = decode(o.object_type, 'MATERIALIZED VIEW', 'TABLE', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'PROCEDURE', 'LIBRARY', 'PROCEDURE', O.OBJECT_TYPE) and (d.aud is null or (d.aud <> chr(0) || '/' || chr(0))) and o.object_type = 'TABLE' and o.object_name ='HIST_HEAD$'; OBJECT_NAME OBJECT_TYPE ALT AUD COM DEL GRA IND INS LOC REN SEL UPD EXE CRE REA WRI FBK ------------------------------ ------------------------------ ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- HIST_HEAD$ TABLE -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- --//查到这里,无法知道为什么,那位知道. SYS@book01p> analyze table hist_head$ validate structure cascade; Table analyzed. 3.通过转储看看: SYS@book01p> select rowid from hist_head$ where rownum=1; ROWID ------------------ AAAABEAABAAAEw6AAZ SYS@book01p> @ rowid AAAABEAABAAAEw6AAZ OBJECT FILE BLOCK ROW ROWID_DBA DBA TEXT ------------ ---------- ---------- ---------- -------------------- -------------------- ---------------------------------------- 68 1 19514 25 0x404C3A 1,19514 alter system dump datafile 1 block 19514 ; SYS@book01p> alter system dump datafile 9 block 19514; System altered. --//绝对文件号是9. SYS@book> select file#,rfile#,name from v$datafile; FILE# RFILE# NAME ---------- ---------- -------------------------------------------------- 1 1 /u01/oradata/BOOK/system01.dbf 3 3 /u01/oradata/BOOK/sysaux01.dbf 4 4 /u01/oradata/BOOK/undotbs01.dbf 5 1 /u01/oradata/BOOK/pdbseed/system01.dbf 6 4 /u01/oradata/BOOK/pdbseed/sysaux01.dbf 7 7 /u01/oradata/BOOK/users01.dbf 8 9 /u01/oradata/BOOK/pdbseed/undotbs01.dbf 9 1 /u01/oradata/BOOK/book01p/system01.dbf 10 4 /u01/oradata/BOOK/book01p/sysaux01.dbf 11 9 /u01/oradata/BOOK/book01p/undotbs01.dbf 12 12 /u01/oradata/BOOK/book01p/users01.dbf 11 rows selected. block_row_dump: tab 0, row 0, @0x1f66 tl: 58 fb: --H-FL-- lb: 0x2 cc: 18 col 0: [ 2] c1 05 col 1: [ 2] c1 2b col 2: [ 2] c1 02 col 3: [ 1] 80 col 4: [ 1] 80 col 5: [ 3] c2 17 5f col 6: [ 7] 78 7c 08 18 10 05 38 col 7: [ 3] c2 02 02 col 8: [ 1] 80 col 9: [ 1] 80 col 10: [ 2] c1 02 col 11: [ 1] 80 col 12: [ 1] 80 col 13: [ 2] c1 02 col 14: [ 2] c1 2b col 15: [ 2] c1 02 col 16: [ 2] c1 03 col 17: [ 2] c1 03 --//看不出任何问题。总之就是不能select * 。
[20240826]奇怪ORA-01031 insufficient privileges报错.txt
来源:这里教程网
时间:2026-03-03 20:33:30
作者:
编辑推荐:
- [20240826]奇怪ORA-01031 insufficient privileges报错.txt03-03
- 超过100万行 存储过程的超复杂Oracle数据库,国产化怎么办?03-03
- 4家国产数据库上市公司半年报!最好的利润1个亿!最差的亏8000万!03-03
- PORCESS满 故障处理报告03-03
- 无缝连接!YashanDB DBLink技术应用实践03-03
- Oracle 数据库忘记密码,如何找回明文密码?03-03
- 没想MogDB也有Oracle这样的坏块自动修复功能....03-03
- [20240825]记录表不存在sql语句执行调用kgllkal,kglpnal的情况(21c).txt03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 超过100万行 存储过程的超复杂Oracle数据库,国产化怎么办?
超过100万行 存储过程的超复杂Oracle数据库,国产化怎么办?
26-03-03 - 4家国产数据库上市公司半年报!最好的利润1个亿!最差的亏8000万!
4家国产数据库上市公司半年报!最好的利润1个亿!最差的亏8000万!
26-03-03 - PORCESS满 故障处理报告
PORCESS满 故障处理报告
26-03-03 - 无缝连接!YashanDB DBLink技术应用实践
无缝连接!YashanDB DBLink技术应用实践
26-03-03 - Oracle 数据库忘记密码,如何找回明文密码?
Oracle 数据库忘记密码,如何找回明文密码?
26-03-03 - Oracle 丢失Redo、Control、SYSAUX、USER文件,无备份,成功启库!
- 阿里财报透视:谁在投入?谁在收缩?
阿里财报透视:谁在投入?谁在收缩?
26-03-03 - 【YashanDB知识库】共享集群YAC换IP
【YashanDB知识库】共享集群YAC换IP
26-03-03 - 【YashanDB知识库】生成迁移报告失败,"报错未知类型错误异常:"
【YashanDB知识库】生成迁移报告失败,"报错未知类型错误异常:"
26-03-03 - 知行科技半年报显示商业化进展提速,下一个亮点在出海?
知行科技半年报显示商业化进展提速,下一个亮点在出海?
26-03-03
