oracle日常巡检--检查数据库安全
概述
续一下之前日常巡检的内容,下面介绍下检查数据库安全和其他方面的检查,数据库安全方面包含:检查系统安全信息,定期修改密码。
一、检查数据库安全
1、检查系统安全日志信息
系统安全日志文件的目录在/var/log下,主要检查登录成功或失败的用户日志信息。
grep -i accepted /var/log/secure grep -i inval /var/log/secure &&grep -i failed /var/log/secure
检查登录成功的日志:
[root@nwppdb1 ~]# grep -i accepted /var/log/secure Jan 14 10:38:57 nwppdb1 sshd[88509]: Accepted password for oracle from 10.92.13.231 port 57530 ssh2 Jan 14 12:41:28 nwppdb1 sshd[60810]: Accepted password for oracle from 10.92.13.231 port 57910 ssh2 Jan 14 13:36:19 nwppdb1 sshd[100890]: Accepted password for oracle from 10.92.13.231 port 58059 ssh2 Jan 14 15:34:28 nwppdb1 sshd[70520]: Accepted password for oracle from 10.92.13.231 port 51689 ssh2 Jan 14 15:56:33 nwppdb1 sshd[86490]: Accepted password for oracle from 10.92.13.231 port 51995 ssh2 Jan 14 16:11:58 nwppdb1 sshd[97485]: Accepted password for oracle from 10.92.13.231 port 52427 ssh2 Jan 14 16:29:14 nwppdb1 sshd[109655]: Accepted password for oracle from 10.92.13.231 port 52931 ssh2 Jan 15 15:00:08 nwppdb1 sshd[25599]: Accepted password for oracle from 10.92.13.231 port 65068 ssh2
检查登录失败的日志:
[root@nwppdb1 ~]# grep -i inval /var/log/secure &&grep -i failed /var/log/secure
在出现的日志信息中没有错误(Invalid、refused)提示,如果没有(Invalid、refused)视为系统正常,出现错误提示,应作出系统告警通知。
2、检查用户修改密码
在数据库系统上往往存在很多的用户,如:第三方数据库监控系统,初始安装数据库时的演示用户,管理员用户等等,这些用户的密码往往是写定的,被很多人知道,会被别有用心的人利用来攻击系统甚至进行修改数据。需要修改密码的用户包括:
数据库管理员用户SYS,SYSTEM;其他用户。
登陆系统后,提示符下输入cat /etc/passwd,在列出来的用户中查看是否存在已经不再使用的或是陌生的帐号。若存在,则记录为异常。
修改密码方法:
alter user USER_NAME identified by PASSWORD;
二、其他检查
1、检查当前crontab任务是否正常
[oracle@nwppdb1:/home/oracle]$crontab -l
00 12 * * * /rmanbackup/scripts/rmanbackup.sh
2、Oracle Job是否有失败
select job,what,last_date,next_date,failures,broken from dba_jobs Where schema_user='NWPP_TEST';
如有问题建议重建job,如:
exec sys.dbms_job.remove(1); commit; exec sys.dbms_job.isubmit(1,'REFRESH_ALL_SNAPSHOT;',SYSDATE+1/1440,'SYSDATE+4/1440'); commit;
3、检查失效的索引
select index_name, table_name, tablespace_name, status From dba_indexes Where owner = 'NWPP_TEST' And status <> 'VALID';
注:分区表上的索引status为N/A是正常的,如有失效索引则对该索引做rebuild,如:
alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME;
4、检查不起作用的约束
SELECT owner, constraint_name, table_name, constraint_type, status FROM dba_constraints WHERE status = 'DISABLE' and constraint_type = 'P';
如有失效约束则启用,如:
alter Table TABLE_NAME Enable Constraints CONSTRAINT_NAME;
5、检查无效的trigger
SELECT owner, trigger_name, table_name, status FROM dba_triggers WHERE status = 'DISABLED';
如有失效触发器则启用,如:
ALTER TRIGGER NWPP_TEST.PREVENTDELETEDTKSGLSJMB ENABLE
到这里我们的oracle数据库日常巡检方面内容就到这了,大家也可以在下方留言说需要看哪方面内容,我抽时间做一些整理。
后面会分享更多关于DBA方面内容,感兴趣的朋友可以关注下!