audit drop table為什麼不行

liujinwei633發表於2009-03-13
audit drop table為什麼不行

SQL> audit drop table;
audit drop table
      *
ERROR at line 1:
ORA-00956: missing or invalid auditing option


SQL> audit table;

Audit succeeded.


我看AUDIT_ACTIONS表中有drop table呀


剛看了一個帖子,也講到這個事情。我的理解是這個帖子裡只是說了這種情況,也沒有給出原因。(英文的,看得比較吃力。如果理解有錯,大佬給解釋下)
帖子連結http://www.dbasupport.com/forums/showthread.php?t=20054
這是我看到的主要的幾個觀點:

Yes u cannot audit DROP TABLE.This is because when you create a table you are the owner of the table and so you have all the priveleges.If you want to audit CREATE,DROP and other DDL commands write a database trigger on it.The database trigger works fine on Oracle 8.1.5 and higher versions.      這個說的是原因嗎?實現這個功能可以用audit table(10.2.0.3),不知他的8.1.5不能嗎

I think you performed those DROPs and CREATEs on user's own schema, that is why it seemed that the first two are not working while the last one is.

There is one odd thing with DROP TABLE and TRUNCATE TABLE statement auditing. You can't specify any of those two actions to be audited explicitely (ORA-956), like you can with CRATE TABLE. So you can't use "AUDIT DROP TABLE;" command. You can only set auditing for DROP and TRUNCATE by isuing "AUDIT TABLE;", which incorporates CREATE, TRUNCATE and DROP. So by setting "AUDIT TABLE;" audit trial will be created whenever someone isues CREATE TABLE, DROP TABLE or TRUNCATE TABLE statement.

BTW, I just noticed one strange thing on my test DB (8.1.7.1.2). AUDIT_TRIAL is set to TRUE. When I started auditing logins/logoffs by isuing "AUDIT SESSION", every new session has been audited immediately. But if I use any other auditing command (like "AUDIT TABLE;"), the table statements ussage was not audited until I restarted the database. After that everything went normal and audit trail has started to reflect the changes. I found this to be true for every auditing statement, except for AUDIT SESSION. I haven't found anything regarding this unusual behaviour in the documentation, so I think this is a bug. Can anyone else reproduce this?

提到了ORA-956


it's working now, I changed audit_trail=db to audit_trail=true and connected as sys with sysdba to audit the statements and works

I thought audit_trail has to be none, db or os?

我看有資料介紹true和db是一樣的。我測試也是沒區別的。不知道這位的works指的是什麼

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/32939/viewspace-567198/,如需轉載,請註明出處,否則將追究法律責任。

相關文章