审计表AUD$一般是放在系统表空间,提醒大家:系统表空间的视图最好不要乱动它们。
由于,一次把审计表移动到了普通表空间存放着。过来一段时间忘记了移动过审计表的位置,
后面在删除一些表空间的时候,不经意间把存放审计表的表空间删除了,最后的结果就是:
数据库能打开,sys用户能登录到数据库,并能查询所有数据,但是除sys用户外的所有用户
都不能登录数据库。之后才想起,应该是审计表被删除了,后面托人把创建审计表的脚本找到,
重新创建了一个审计表,存放到了系统表空间,之后,其他用户才能正常登录进去数据库。
以下就是创建审计表的脚本:
create table AUD$
(
sessionid NUMBER not null,
entryid NUMBER not null,
statement NUMBER not null,
timestamp# DATE,
userid VARCHAR2(30),
userhost VARCHAR2(128),
terminal VARCHAR2(255),
action# NUMBER not null,
returncode NUMBER not null,
obj$creator VARCHAR2(30),
obj$name VARCHAR2(128),
auth$privileges VARCHAR2(16),
auth$grantee VARCHAR2(30),
new$owner VARCHAR2(30),
new$name VARCHAR2(128),
ses$actions VARCHAR2(19),
ses$tid NUMBER,
logoff$lread NUMBER,
logoff$pread NUMBER,
logoff$lwrite NUMBER,
logoff$dead NUMBER,
logoff$time DATE,
comment$text VARCHAR2(4000),
clientid VARCHAR2(64),
spare1 VARCHAR2(255),
spare2 NUMBER,
obj$label RAW(255),
ses$label RAW(255),
priv$used NUMBER,
sessioncpu NUMBER,
ntimestamp# TIMESTAMP(6),
proxy$sid NUMBER,
user$guid VARCHAR2(32),
instance# NUMBER,
process# VARCHAR2(16),
xid RAW(8),
auditid VARCHAR2(64),
scn NUMBER,
dbid NUMBER,
sqlbind CLOB,
sqltext CLOB,
obj$edition VARCHAR2(30)
)
tablespace SYSTEM
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
Table created.
SQL> grant delete on AUD$ to DELETE_CATALOG_ROLE;
-- Grant/Revoke object privileges
grant delete on AUD$ to DELETE_CATALOG_ROLE;
Grant succeeded.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31392094/viewspace-2127107/
,如需转载,请注明出处,否则将追究法律责任。