检查方法:
使用sqlplus检查参数,
SQL> show parameter O7_DICTIONARY_ACCESSIBILITY
参数O7_DICTIONARY_ACCESSIBILITY设置为FALSE
修订算法:
SQL> alter system set O7_DICTIONARY_ACCESSIBILITY=FALSE scope=spfile;
SQL> shutdown immediate
SQL> startup
4.账户口令的生存期
检查方法:
执行
select dba_profiles.profile,resource_name, limit
from dba_profiles, dba_users
where dba_profiles.profile = dba_users.profile
and dba_users.account_status='OPEN' and resource_name='PASSWORD_GRACE_TIME';
查询结果中PASSWORD_GRACE_TIME小于等于90。
修订算法:
SQL> alter profile default limit PASSWORD_GRACE_TIME 60;
5.重复口令使用
检查方法:
执行
select dba_profiles.profile,resource_name, limit
from dba_profiles, dba_users
where dba_profiles.profile = dba_users.profile
and dba_users.account_status='OPEN' and resource_name='PASSWORD_REUSE_MAX';
查询结果中PASSWORD_REUSE_MAX大于等于5。
修订算法:
SQL> alter profile default limit PASSWORD_REUSE_MAX 5;
6.认证控制
检查方法:
执行
select dba_profiles.profile,resource_name, limit
from dba_profiles, dba_users
where dba_profiles.profile = dba_users.profile
and dba_users.account_status='OPEN' and resource_name='FAILED_LOGIN_ATTEMPTS';
查询结果中FAILED_LOGIN_ATTEMPTS等于6。
修订算法:
SQL>alter profile default limit FAILED_LOGIN_ATTEMPTS 6;
检查方法:
执行
select profile,limit from dba_profiles
where resource_name='PASSWORD_LIFE_TIME' and profile in (select profile from dba_users where account_status='OPEN');
查询结果中PASSWORD_LIFE_TIME小于等于90。
修订算法:
SQL> alter profile default limit PASSWORD_LIFE_TIME 90;
9.密码复杂度策略
检查方法:
执行
select limit from dba_profiles
where resource_name = 'PASSWORD_VERIFY_FUNCTION'and profile in (select profile from dba_users where account_status = 'OPEN');select text from dba_source where name='PASSWORD_VERIFY_FUNCTION';
查询结果中不为“NULL”且策略为口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少3类
修订算法:
创建复杂度策略
使用 sys 用户登录,执行如下脚本:
D:\app\administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlpwdmg.sql
oracle 10g, 必须使用sys用户登录,oracle 11g,可以使用 system创建;
然后执行如下脚本:
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 60
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX 5
FAILED_LOGIN_ATTEMPTS 6
PASSWORD_LOCK_TIME 1
PASSWORD_VERIFY_FUNCTION verify_function;
10.数据库审计策略
检查方法:
1.使用参数设置,
SQL> show parameter audit_trail
参数audit_trail不为NONE。
检查dba_audit_trail视图中或$ORACLE_BASE/admin/adump目录下是否有数据。
2.查看审计表,检查是否有用户登录、操作记录
select * from LOGON_AUDIT.LOGON_AUDIT;
修订算法:
SQL> alter system set audit_trail=os scope=spfile;
SQL> shutdown immediate
SQL> startup