对需要设置的用户创建新profile,对该profile启用密码策略,一些其他用户仍然使用Default profile,保证不受新策略影响。
- 查看当前策略:
show parameter resource_limit;
show parameter FAILED_LOGIN_ATTEMPTS;
show parameter SEC_CASE_SESITIVE_LOGON;
- 创建密码复杂度函数。
SQL> conn /as sysdba
Connected.
SQL> @?/rdbms/admin/utlpwdmg.sql
*sfcdb*[oracle@nv-f20-sfcdb1 ~]$ cd $ORACLE_HOME/rdbms/admin
*sfcdb*[oracle@nv-f20-sfcdb1 admin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Sep 25 10:39:26 2023
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @utlpwdmg.sql
Function created.
Grant succeeded.
Profile altered.
Function created.
Grant succeeded.
函数默认为8位长度验证,可以使用sys用户重新编译函数为12位以上。
- 创建具有密码复杂度的Profile;
create profile dev_profile limit
SESSIONS_PER_USER unlimited --每个用户拥有的会话数不限。
PASSWORD_REUSE_TIME 60 --密码重用次数。
FAILED_LOGIN_ATTEMPTS 10 --失败可尝试登录次数10次。
PASSWORD_LIFE_TIME 90 --密码180天过期。
PASSWORD_GRACE_TIME 7 --最多可以延迟7天必须修改密码。
PASSWORD_REUSE_MAX 1 --密码只能重用一次。
PASSWORD_LOCK_TIME 1/48 --锁定时间30分钟。
IDLE_TIME 4320 --空闲时间。
PASSWORD_VERIFY_FUNCTION verify_function_11G; --指定密码复杂度函数:最少8位,包含大写,小写,数字,特殊符号。
- 启用资源resource限制及口令限制,应用至新增profile,default profile取消:
alter system set resource_limit = true;
alter profile dev_profile limit password_verify_function verify_function_11G; --用resource的策略限制dev_profile
alter profile default limit password_verify_function null; -- 取消密码复杂度
alter profile default limit PASSWORD_LIFE_TIME unlimited;
- 将某个用户X2003710或多个用户加入到这个密码策略中,此用户将使用该策略。
alter user X2003710 profile PROF_MYPROFILE;
。。。
- 检查dev_profile和default profile的设置:
select * from dba_profiles;
select * from dba_users;
select PROFILE,resource_type,RESOURCE_NAME,LIMIT from dba_profiles where PROFILE='DEFAULT';
SELECT profile,resource_type,resource_name,limit FROM dba_profiles WHERE resource_type='PASSWORD' AND profile='DEFAULT';
-其他设置命令:
alter profile default limit FAILED_LOGIN_ATTEMPTS 5;
alter profile default limit PASSWORD_LOCK_TIME 30/24/60; -- 单位天(配置30分钟)
alter profile default limit PASSWORD_LIFE_TIME 90;
alter profile default limit PASSWORD_GRACE_TIME 7;
-- alter profile default limit PASSWORD_REUSE_TIME UNLIMITED;
alter profile default limit PASSWORD_REUSE_TIME 30;
alter profile default limit PASSWORD_REUSE_MAX 7;