概述:
Oracle的复杂度通过参数PASSWORD_VERIFY_FUNCTION设置,通常该参数使用数据库自带的脚本utlpwdmg.sql配置,不同版本的数据库脚本自带的复杂度也不尽相同,当然也可以自己配置脚本文件。
以下测试使用的是Oracle Database 12c Enterprise Edition Release 12.2.0.1.0
一、查看复杂度
select * from dba_profiles where resource_name='PASSWORD_VERIFY_FUNCTION';
这时看到能配置复杂度的有两个函数:默认的DEFAULT、系统版本自带的ORA_STIG_PROFILE。
查看用户使用的复杂度函数:
select username,profile,account_status from dba_users;
在此,我的测评数据库都是使用DEAULT。
根据图1的结果,DEFAULT没有复杂度设置(NULL)。
二、验证复杂度
测试复杂度,在此使用账户LHX,修改密码。
修改成功。验证可知,测试账户LHX未配置复杂度。
三、应用utlpwdmg.sql,配置数据库复杂度
服务器使用sysdba账户登录数据库,输入
@utlpwdmg.sql
四、查看复杂度
五、验证复杂度
使用账户LHX,修改密码。
备注:报错原因,经查阅是特殊字符只能使用指定字符_,$和#。
验证可知,该数据库版本自带的复杂度ORA12C_VERIFY_FUNCTION是至少8位字符,由字母、数字、特殊字符组成。
六、查看自带的复杂度脚本
服务器切换Oracle账户,进入$ORACLE_HOME/rdbms/admin文件夹下,可以看到utlpwdmg.sql
[root@localhost ~]# su - oracle [oracle@localhost ~]$ cd $ORACLE_HOME/rdbms/admin [oracle@localhost admin]$
[oracle@localhost admin]$ cat utlpwdmg.sql Rem Rem $Header: rdbms/admin/utlpwdmg.sql /main/13 2016/01/04 21:20:04 sumkumar Exp $ Rem Rem utlpwdmg.sql Rem Rem Copyright (c) 2006, 2015, Oracle and/or its affiliates. Rem All rights reserved. Rem Rem NAME Rem utlpwdmg.sql - script for Default Password Resource Limits Rem Rem DESCRIPTION Rem This is a script for enabling the password management features Rem by setting the default password resource limits. Rem Rem NOTES Rem This file contains a function for minimum checking of password Rem complexity. This is more of a sample function that the customer Rem can use to develop the function for actual complexity checks that the Rem customer wants to make on the new password. Rem Rem MODIFIED (MM/DD/YY) Rem sumkumar 12/15/15 - Bug 22369990: Make all PVFs as common objects Rem so as to make them available inside PDBs Rem yanlili 09/18/15 - Fix bug 20603202: Handle quoted usernames if Rem called directly Rem hmohanku 02/17/15 - bug 20460696: add long identifier support Rem sumkumar 12/26/14 - Proj 46885: set inactive account time to Rem UNLIMITED for DEFAULT profile Rem jkati 10/16/13 - bug#17543726 : remove complexity_check, Rem string_distance, ora12c_strong_verify_function Rem since we now provide them by default with new db Rem creation Rem skayoor 10/26/12 - Bug 14671375: Execute privilege on pwd verify Rem func Rem jmadduku 07/30/12 - Bug 13536142: Re-organize the code Rem jmadduku 12/02/11 - Bug 12839255: Compliant Password Verify functions Rem jmadduku 01/21/11 - Proj 32507: Add a new password verify function Rem STIG_verify_function and enhance functionality of Rem code that checks distance between old and new Rem password Rem asurpur 05/30/06 - fix - 5246666 beef up password complexity check Rem nireland 08/31/00 - Improve check for username=password. #1390553 Rem nireland 06/28/00 - Fix null old password test. #1341892 Rem asurpur 04/17/97 - Fix for bug479763 Rem asurpur 12/12/96 - Changing the name of password_verify_function Rem asurpur 05/30/96 - New script for default password management Rem asurpur 05/30/96 - Created Rem -- This script sets the default password resource parameters -- This script needs to be run to enable the password features. -- However the default resource parameters can be changed based -- on the need. -- A default password complexity function is provided. Rem ************************************************************************* Rem BEGIN Password Management Parameters Rem ************************************************************************* -- This script alters the default parameters for Password Management -- This means that all the users on the system have Password Management -- enabled and set to the following values unless another profile is -- created with parameter values set to different value or UNLIMITED -- is created and assigned to the user. ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 180 PASSWORD_GRACE_TIME 7 PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LOCK_TIME 1 INACTIVE_ACCOUNT_TIME UNLIMITED PASSWORD_VERIFY_FUNCTION ora12c_verify_function; /** The below set of password profile parameters would take into consideration recommendations from Center for Internet Security[CIS Oracle 11g]. ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90 PASSWORD_GRACE_TIME 3 PASSWORD_REUSE_TIME 365 PASSWORD_REUSE_MAX 20 FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1 PASSWORD_VERIFY_FUNCTION ora12c_verify_function; */ /** The below set of password profile parameters would take into consideration recommendations from Department of Defense Database Security Technical Implementation Guide[STIG v8R1]. ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 60 PASSWORD_REUSE_TIME 365 PASSWORD_REUSE_MAX 5 FAILED_LOGIN_ATTEMPTS 3 PASSWORD_VERIFY_FUNCTION ora12c_strong_verify_function; */ Rem ************************************************************************* Rem END Password Management Parameters Rem *************************************************************************
本文参考: