Oracle數(shù)據(jù)庫加固之密碼策略
我們都知道密碼策略加固的參數(shù)一般包括密碼長度、復(fù)雜度檢測、最大最小使用時(shí)間、過期警報(bào)時(shí)間、最大登錄失敗次數(shù)以及鎖定時(shí)間等設(shè)置。
Oracle默認(rèn)提供了一個(gè)密碼策略的sql執(zhí)行文件utlpwdmg.sql。linux/unix默認(rèn)路徑是$ORACLE_HOME/rdbms/admin/utlpwdmg.sql 。windows路徑位置可以通過搜索來獲得。
首先我們先看一下Oracle默認(rèn)安裝后密碼策略設(shè)置是怎樣的。
圖1
圖2
通過配置文件可以發(fā)現(xiàn)目前密碼策略中密碼長度設(shè)置為不小于4位,同時(shí)也設(shè)置了密碼存活時(shí)間為180天,密碼警告時(shí)間為7天,登錄失敗次數(shù)顯示為10次,鎖定時(shí)間為1分鐘。
接下來我們通過測試來看一下此策略設(shè)置腳本是否生效。
圖3
修改scott恩口令tiger為123成功,說明utlpwdmg.sql腳本文件未被執(zhí)行。
下面我們重新修改好utlpwdmg.sql配置,然后執(zhí)行。
圖4
圖5
執(zhí)行腳本:
圖6
然后我們查看是否密碼長度、密碼復(fù)雜度檢測功能是否已經(jīng)開啟。
圖7
有圖可知:新密碼設(shè)置為123失敗,要求必須是8位以上。
圖8
由圖可知:新密碼設(shè)置為12345678失敗,要求必須至少一個(gè)數(shù)字、一個(gè)字母,說明密碼復(fù)雜度檢測已經(jīng)開啟。
圖9
由圖可知,utlpwdmg.sql默認(rèn)的failed_login_attempts值由10變?yōu)?。
綜上所知:utlpwdmg.sql 腳本文件生效,部分密碼策略已經(jīng)生效。
(為了測試方面,實(shí)驗(yàn)中profile中的密碼策略參數(shù)只做了部分修改,實(shí)際加固中要多所有的密碼策略進(jìn)行整改加固。)
其實(shí)針對用戶的profile的設(shè)置可以直接通過以下命令單獨(dú)來設(shè)置:
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 180
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME 100
PASSWORD_REUSE_MAX 200
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1/1440
PASSWORD_VERIFY_FUNCTION verify_function_11G;
補(bǔ)充:
<!--[if !supportLists]-->1. <!--[endif]-->其中verify_function_11G 是utlpwdmg.sql文件中一段針對用戶密碼的復(fù)雜度檢測函數(shù)。
<!--[if !supportLists]-->2. <!--[endif]-->PASSWORD_LOCK_TIME 1/1440 其中的單位都是天,這里/1440是除以1440(24*60)的意思,綜合此處意思為鎖定時(shí)間為1分鐘。