我们知道,oracle用户的密码是加密后存储在数据字典中的,可以通过dba_users视图查看到加密后的密码。虽然密码是经过加密存储的,但是从信息安全的角度来看,暴露的信息越多越不安全,所以即使是加密后的密码泄漏,也可能造成很严重的安全问题。所以,在Oracle11g中,除了可以选择加强的密码算法,更加严格的密码强度,还有一点加强,就是不再在dba_uses.password中显示加密后的密码了。
Oracle10g查询dba_users的结果
USERNAME PASSWORD
------------------------------ ------------------------------
SYS 7D55A4DE0D9A4BEB
SYSTEM ADCB2935EDDF29D4
SOE 552DCAEDD0062495
OUTLN 4A3BA55E08595C81
EXFSYS 66F4EF5650C20355
DBSNMP E066D214D5421CCC
WMSYS 7C9BA362F8314299
OLAPSYS 3FB8EF9DB538647C
TSMSYS 3DF26A8B17D0F29F
DIP CE4A36B8E06CA59C
Oracle11g查询dba_users的结果
USERNAME PASSWORD
-------------------- ------------------------------
SYS
SYSTEM
NING
TEST
OUTLN
DBSNMP
WMSYS
TSMSYS
DIP
Oracle11g在用户安全性方面的加强,还有:
密码区分大小写
可以通过初始化参数sec_case_sensitive_logon来控制密码是否大小写敏感,默认TRUE
密码复杂性检查
通过执行以下脚本生成密码复杂性检查函数verify_function_11G
@$ORACLE_HOME/RDBMS/ADMIN/utlpwdmg.sql
然后设置profile使用该函数来检查密码即可
ALTER PROFILE default PASSWORD_VERIFY_FUNCTION verify_function_11G;
强度更高的Hash加密算法
Oracle11g采用安全散列算法(Secure Hash Algorithm)SHA-1做为新的加密算法,但貌似这个算法已经开始不那么安全了。