今天接到客户自己的测试环境,从源数据库导致一个表到目标数据库,select * from tabname报ORA-01435: user does not exist,select count(*) from tabname正常,原来只了解细粒度审计,但是在环境中还没有真真的见过,所以整个过程分析用了一点时间。

      下面是整个过程:

 
  
  1. scott@EM10G> select count(*) from EMPLOYEES; 
  2.  
  3.   COUNT(*) 
  4. ---------- 
  5.        107 
  6.  
  7. scott@EM10G> select * from EMPLOYEES; 
  8. select * from EMPLOYEES 
  9.   * 
  10. ERROR at line 1: 
  11. ORA-01435: user does not exist 

     下面是10046的过程

 
  
  1. [oracle@RAC2 ~]$ sqlplus / as sysdba 
  2.  
  3. SQL*Plus: Release 10.2.0.1.0 - Production on Fri Mar 22 17:03:50 2013 
  4.  
  5. Copyright (c) 1982, 2005, Oracle.  All rights reserved. 
  6.  
  7.  
  8. Connected to
  9. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production 
  10. With the Partitioning, OLAP and Data Mining options 
  11.  
  12. sys@EM10G> select spid from v$process where addr=(select paddr from v$session where username='SCOTT'); 
  13.  
  14. SPID 
  15. ------------ 
  16. 30255 
  17.  
  18. sys@EM10G> oradebug setospid 30255 
  19. Oracle pid: 22, Unix process pid: 30255, p_w_picpath: oracle@RAC2 (TNS V1-V3) 
  20. sys@EM10G> oradebug event 10046 trace name context forever ,level 12; 
  21. Statement processed. 
  22. sys@EM10G> oradebug tracefile_name 
  23. /u01/app/oracle/admin/em10g/udump/em10g_ora_30255.trc 
  24. sys@EM10G> !vi /u01/app/oracle/admin/em10g/udump/em10g_ora_30255.trc 
  25.  
  26. Dump file /u01/app/oracle/admin/em10g/udump/em10g_ora_30255.trc 
  27. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production 
  28. With the Partitioning, OLAP and Data Mining options 
  29. ORACLE_HOME = /u01/app/oracle 
  30. System name:    Linux 
  31. Node name:      RAC2 
  32. Release:        2.6.9-89.0.0.0.1.ELsmp 
  33. Version:        #1 SMP Tue May 19 04:23:49 EDT 2009 
  34. Machine:        i686 
  35. Instance name: em10g 
  36. Redo thread mounted by this instance: 1 
  37. Oracle process number: 22 
  38. Unix process pid: 30255, p_w_picpath: oracle@RAC2 (TNS V1-V3) 
  39.  
  40. *** ACTION NAME:() 2013-03-22 17:02:24.565 
  41. *** MODULE NAME:(SQL*Plus) 2013-03-22 17:02:24.565 
  42. *** SERVICE NAME:(SYS$USERS) 2013-03-22 17:02:24.565 
  43. *** SESSION ID:(312.17658) 2013-03-22 17:02:24.565 
  44. ----------------------------------- 
  45. Error during execution of handler in Fine Grained Auditing 
  46. Audit handler  : begin SEC.LOG_EMPS_SALARY(:sn, :on, :pl); end
  47. Error Number 1  : 1435 
  48. Logon user     : SCOTT 
  49. Object Schema: SCOTT, Object Name: EMPLOYEES, Policy Name: AUDIT_EMPS_SALARY 
  50. *** 2013-03-22 17:04:36.852 
  51. Received ORADEBUG command 'event 10046 trace name context forever ,level 12' from process Unix process pid: 30298, p_w_picpath: 
  52. WAIT #0: nam='SQL*Net message from client' ela= 110477763 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1331975666205121 
  53. ===================== 
  54. PARSING IN CURSOR #1 len=23 dep=0 uid=27 oct=3 lid=27 tim=1331975666206838 hv=1609818433 ad='58ce67f0' 
  55. select * from EMPLOYEES 
  56. END OF STMT 
  57. PARSE #1:c=1000,e=1593,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=1331975666206830 
  58. BINDS #1: 
  59. ===================== 
  60. PARSING IN CURSOR #2 len=382 dep=1 uid=0 oct=2 lid=0 tim=1331975666208989 hv=1818756823 ad='58f2cf18' 
  61. insert into sys.fga_log$ (sessionid, ntimestamp#,  dbuid, osuid, obj$schema,  obj$name, policyname, scn,  oshst, clientid, extid,  lsqltext, proxy$sid,user$guid, instance#,  process#, xid, statement, entryid, stmt_type, lsqlbind, auditid)  values(  :1, SYS_EXTRACT_UTC(SYSTIMESTAMP),  :2, :3, :4,  :5, :6, :7,  :8, :9, :10, :11, :12, :13, :14,  :15, :16, :17, :18, :19, :20, :21  ) 
  62. END OF STMT 
  63. PARSE #2:c=1000,e=975,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1331975666208982 
  64. BINDS #2: 
  65. kkscoacd 
  66.  Bind#0 
  67.   oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00 
  68.   oacflg=00 fl2=0001 frm=00 csi=00 siz=24 off=0 
  69.   kxsbbbfp=b72b8a94  bln=22  avl=04  flg=05 
  70.   value=273276 
  71.  Bind#1 
  72.   oacdty=01 mxl=32(05) mxlc=00 mal=00 scl=00 pre=00 
  73.   oacflg=10 fl2=0001 frm=01 csi=01 siz=32 off=0 
  74.   kxsbbbfp=bfffb9de  bln=32  avl=05  flg=09 
  75.   value="SCOTT" 
  76.  Bind#2 
  77.   oacdty=01 mxl=32(06) mxlc=00 mal=00 scl=00 pre=00 
  78.   oacflg=11 fl2=0001 frm=01 csi=01 siz=32 off=0 
  79.   kxsbbbfp=bfffba02  bln=32  avl=06  flg=09 
  80.   value="oracle" 
  81.  Bind#3 
  82.   oacdty=01 mxl=32(05) mxlc=00 mal=00 scl=00 pre=00 
  83.   oacflg=10 fl2=0001 frm=01 csi=01 siz=32 off=0 
  84.   kxsbbbfp=bfffba22  bln=32  avl=05  flg=09 
  85.   value="SCOTT" 
  86.  Bind#4 
  87.   oacdty=01 mxl=32(09) mxlc=00 mal=00 scl=00 pre=00 
  88.   oacflg=10 fl2=0001 frm=01 csi=01 siz=32 off=0 
  89.   kxsbbbfp=bfffba42  bln=32  avl=09  flg=09 
  90.   value="EMPLOYEES" 
  91.  Bind#5 
  92.   oacdty=01 mxl=32(17) mxlc=00 mal=00 scl=00 pre=00 
  93.   oacflg=10 fl2=0001 frm=01 csi=01 siz=32 off=0 
  94.   kxsbbbfp=bfffba62  bln=32  avl=17  flg=09 
  95.   value="AUDIT_EMPS_SALARY" 
  96.  Bind#6 
  97.   oacdty=02 mxl=22(05) mxlc=00 mal=00 scl=00 pre=00 
  98.   oacflg=10 fl2=0001 frm=00 csi=00 siz=24 off=0 
  99.   kxsbbbfp=bfffba80  bln=22  avl=05  flg=09 
  100.   value=76930924 
  101.  Bind#7 
  102.   oacdty=01 mxl=32(04) mxlc=00 mal=00 scl=00 pre=00 
  103.   oacflg=11 fl2=0001 frm=01 csi=01 siz=32 off=0 
  104.   kxsbbbfp=bfffba9e  bln=32  avl=04  flg=09 
  105.   value="RAC2" 
  106.  Bind#8 
  107.   oacdty=01 mxl=32(00) mxlc=00 mal=00 scl=00 pre=00 
  108.   oacflg=11 fl2=0001 frm=01 csi=01 siz=32 off=0 
  109.   kxsbbbfp=00000000  bln=32  avl=00  flg=09 
  110.  Bind#9 
  111.   oacdty=01 mxl=32(06) mxlc=00 mal=00 scl=00 pre=00 
  112.   oacflg=11 fl2=0001 frm=01 csi=01 siz=32 off=0 
  113.   kxsbbbfp=bfffbb68  bln=32  avl=06  flg=09 
  114.   value="oracle" 
  115.  Bind#10 
  116.   oacdty=112 mxl=4000(4000) mxlc=00 mal=00 scl=00 pre=00 
  117.   oacflg=01 fl2=0001 frm=01 csi=00 siz=4000 off=0 
  118.   kxsbbbfp=b72b7700  bln=4000  avl=4000  flg=05 
  119.   value= 
  120. Dump of memory from 0xB72B7700 to 0xB72B86A0 
  121. B72B7700 01002600 03000802 00000100 013844FA  [.&...........D8.] 
  122. B72B7710 02000000 16000100 01000000 00000000  [................] 
  123. B72B7720 D36EF96C 4EE43585 00000000 00000000  [l.n..5.N........] 
  124. B72B7730 00000000 00000000 00000000 00000000  [................] 
  125.   Repeat 246 times 
  126.  Bind#11 
  127.   oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00 
  128.   oacflg=01 fl2=0001 frm=00 csi=00 siz=24 off=0 
  129.   kxsbbbfp=b72b8a70  bln=22  avl=00  flg=05 
  130.  Bind#12 
  131.   oacdty=01 mxl=32(00) mxlc=00 mal=00 scl=00 pre=00 
  132.   oacflg=11 fl2=0001 frm=01 csi=01 siz=32 off=0 
  133.   kxsbbbfp=00000000  bln=32  avl=00  flg=09 
  134.  Bind#13 
  135.   oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00 
  136.   oacflg=00 fl2=0001 frm=00 csi=00 siz=24 off=0 
  137.   kxsbbbfp=b72b8a4c  bln=22  avl=01  flg=05 
  138.   value=0 
  139.  Bind#14 
  140.   oacdty=01 mxl=32(05) mxlc=00 mal=00 scl=00 pre=00 
  141.   oacflg=11 fl2=0001 frm=01 csi=01 siz=32 off=0 
  142.   kxsbbbfp=bfffbf94  bln=32  avl=05  flg=09 
  143.   value="30255" 
  144.  Bind#15 
  145.   oacdty=23 mxl=32(00) mxlc=00 mal=00 scl=00 pre=00 
  146.   oacflg=11 fl2=0001 frm=00 csi=00 siz=32 off=0 
  147.   kxsbbbfp=00000000  bln=32  avl=00  flg=09 
  148.  Bind#16 
  149.   oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00 
  150.   oacflg=00 fl2=0001 frm=00 csi=00 siz=72 off=0 
  151.   kxsbbbfp=b72b89f8  bln=22  avl=02  flg=05 
  152.   value=9 
  153.  Bind#17 
  154.   oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00 
  155.   oacflg=00 fl2=0001 frm=00 csi=00 siz=0 off=24 
  156.   kxsbbbfp=b72b8a10  bln=22  avl=02  flg=01 
  157.   value=2 
  158.  Bind#18 
  159.   oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00 
  160.   oacflg=00 fl2=0001 frm=00 csi=00 siz=0 off=48 
  161.   kxsbbbfp=b72b8a28  bln=22  avl=02  flg=01 
  162.   value=1 
  163.  Bind#19 
  164.   oacdty=112 mxl=4000(4000) mxlc=00 mal=00 scl=00 pre=00 
  165.   oacflg=01 fl2=0001 frm=01 csi=00 siz=4000 off=0 
  166.   kxsbbbfp=b72b6740  bln=4000  avl=00  flg=05 
  167.  Bind#20 
  168.   oacdty=01 mxl=32(00) mxlc=00 mal=00 scl=00 pre=00 
  169.   oacflg=11 fl2=0001 frm=01 csi=01 siz=32 off=0 
  170.   kxsbbbfp=00000000  bln=32  avl=00  flg=09 
  171. Begin cleaning out block ... 
  172. Found all committed transactions 
  173. Block cleanout record, scn:  0xffff.ffffffff ver: 0x01 opt: 0x02, entries follow... 
  174.   itli: 1  flg: 2  scn: 0x0000.0495ddcb 
  175.   itli: 2  flg: 2  scn: 0x0000.0495df3e 
  176. Block cleanout under the cache... 
  177. Block cleanout record, scn:  0x0000.0495df6c ver: 0x01 opt: 0x02, entries follow... 
  178.   itli: 1  flg: 2  scn: 0x0000.0495ddcb 
  179.   itli: 2  flg: 2  scn: 0x0000.0495df3e 
  180. ... clean out dump complete. 
  181. EXEC #2:c=2000,e=1974,p=0,cr=2,cu=2,mis=1,r=1,dep=1,og=4,tim=1331975666211048 
  182. ----------------------------------- 
  183. Error during execution of handler in Fine Grained Auditing 
  184. Audit handler  : begin SEC.LOG_EMPS_SALARY(:sn, :on, :pl); end
  185. Error Number 1  : 1435 
  186. Logon user     : SCOTT 
  187. Object Schema: SCOTT, Object Name: EMPLOYEES, Policy Name: AUDIT_EMPS_SALARY 
  188. WAIT #1: nam='log file sync' ela= 30974 buffer#=1013 p2=0 p3=0 obj#=-1 tim=1331975666243042 
  189. WAIT #1: nam='SQL*Net break/reset to client' ela= 4 driver id=1650815232 break?=1 p3=0 obj#=-1 tim=1331975666244102 
  190. WAIT #1: nam='SQL*Net break/reset to client' ela= 85 driver id=1650815232 break?=0 p3=0 obj#=-1 tim=1331975666244210 
  191. WAIT #1: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1331975666244236 
  192. WAIT #1: nam='SQL*Net message from client' ela= 0 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1331975666244269 
  193. STAT #1 id=1 cnt=0 pid=0 pos=1 obj=21358 op='TABLE ACCESS FULL EMPLOYEES (cr=0 pr=0 pw=0 time=784 us)' 
  194. WAIT #0: nam='SQL*Net message to client' ela= 3 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1331975666245227 
  195. *** 2013-03-22 17:04:48.216 
  196. Received ORADEBUG command 'tracefile_name' from process Unix process pid: 30298, p_w_picpath: 

      已经看到报错信息了,打开了Grained Auditing的原因。

 
  
  1. scott@EM10G> select * from DBA_AUDIT_POLICIES; 
  2.  
  3. OBJECT_SCHEMA                  OBJECT_NAME                    POLICY_NAME 
  4. ------------------------------ ------------------------------ ------------------------------ 
  5. POLICY_TEXT 
  6. ----------------------------------------------------------------------------------------------------------------------------------- 
  7. POLICY_COLUMN                  PF_SCHEMA                      PF_PACKAGE                     PF_FUNCTION                    ENA SEL 
  8. ------------------------------ ------------------------------ ------------------------------ ------------------------------ --- --- 
  9. INS UPD DEL AUDIT_TRAIL  POLICY_COLU 
  10. --- --- --- ------------ ----------- 
  11. SCOTT                          EMPLOYEES                      AUDIT_EMPS_SALARY 
  12.  
  13. SALARY                         SEC                                                           LOG_EMPS_SALARY                YES YES 
  14. NO  NO  NO  DB+EXTENDED  ANY_COLUMNS 
  15.  
  16. HR                             EMPLOYEES                      AUDIT_EMPS_SALARY 
  17.  
  18. SALARY                         SEC                                                           LOG_EMPS_SALARY                YES YES 
  19. NO  NO  NO  DB+EXTENDED  ANY_COLUMNS 
  20.  
  21. 由于是客户自己的测试环境,所以直接drop
  22. scott@EM10G> BEGIN 
  23.   2  dbms_fga.drop_policy( object_schema => 'scott'
  24.   3                       object_name => 'EMPLOYEES'
  25.   4                       policy_name => 'AUDIT_EMPS_SALARY');                    
  26.   5  END
  27.   6  / 
  28.  
  29. PL/SQL procedure successfully completed. 

可以看到问题已经解决

 
  
  1. scott@EM10G> conn scott/tiger; 
  2. Connected. 
  3. scott@EM10G> select * from  EMPLOYEES ; 
  4.  
  5. EMPLOYEE_ID FIRST_NAME           LAST_NAME                 EMAIL                     PHONE_NUMBER         HIRE_DATE JOB_ID 
  6. ----------- -------------------- ------------------------- ------------------------- -------------------- --------- ---------- 
  7.     SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID 
  8. ---------- -------------- ---------- ------------- 
  9.         198 Donald               OConnell                  DOCONNEL                  650.507.9833         21-JUN-99 SH_CLERK 
  10.       2600                       124            50 
  11.  
  12.         199 Douglas              Grant                     DGRANT                    650.507.9844         13-JAN-00 SH_CLERK 
  13.       2600                       124            50 
  14. 已经正常