首先-自定义环境
注意:以下所有操作都将修改系统表sys用户下的数据
-- 创建环境
CREATE PROFILE PROFILE_DEMO LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PRIVATE_SGA UNLIMITED
FAILED_LOGIN_ATTEMPTS 6
PASSWORD_LIFE_TIME 180
PASSWORD_REUSE_TIME 60
PASSWORD_REUSE_MAX 5
PASSWORD_LOCK_TIME 1/24
PASSWORD_GRACE_TIME 10
PASSWORD_VERIFY_FUNCTION null
-- 指定环境:
-- 1、可以在创建用户的时候指定环境
-- create user demo identified by cancer default tablespace USERS profile PROFILE_DEMO;
-- 可以对用户进行变更环境
-- alter user demo profile default;
-- 删除环境
-- drop PROFILE PROFILE_DEMO;
其次-设置密码复杂度
RESOURCE_LIMIT
Oracle系统参数RESOURCE_LIMIT是一个用于控制用户对于数据库资源使用的参数,当值为true的时候即为启用,否则禁用。该参数结合profile来可以控制多种资源的使用,如CPU_PER_SESSION,CONNECT_TIME,LOGICAL_READS_PER_SESSION,PRIVATE_SGA等等从而达到到节省资源来实现高效性能。
-- 查看 RESOURCE_LIMIT 是否开启
SQL> SELECT * from v$system_parameter where name = 'resource_limit'
-- 开启 RESOURCE_LIMIT
SQL> alter system set resource_limit = true;
系统已更改。
-- 执行添加密码测试函数的sql (位置:"%ORACLE_HOME%\RDBMS\ADMIN\utlpwdmg.sql") 已经执行添加操作省略此步骤
SQL> @ %ORACLE_HOME%/RDBMS/ADMIN/utlpwdmg.sql → [verify_function|verify_function_11G]
函数已创建。
配置文件已更改
函数已创建。
-- 修改密码策略(verify_function|verify_function_11G) 此处修改的环境可以改为自己创建的环境PROFILE_DEMO
SQL> alter profile PROFILE_DEMO limit password_verify_function verify_function_11G;
配置文件已更改
-- 修改密码策略为null则取消密码复杂度策略
-- SQL> alter profile PROFILE_DEMO limit password_verify_function null;
-- 查看修改后的环境 PASSWORD_VERIFY_FUNCTION 的LIMIT为VERIFY_FUNCTION_11G说明修改成功
SQL> select * from dba_profiles where profile='PROFILE_DEMO';
-- 测试使用新的环境创建用户
SQL> create user DEMO IDENTIFIED BY 123456 PROFILE PROFILE_DEMO;
第 1 行出现错误:
ORA-28003: 指定口令的口令验证失败
ORA-20001: Password length less than 8
-- 密码复杂度生效
其他策略配置
其他策略配置方式和密码复杂度相似
关键sql
alter profile PROFILE_DEMO limit password_verify_function verify_function_11G;
-- 例如:
-- 修改连接时间为20分钟
SQL> alter profile PROFILE_DEMO limit CONNECT_TIME 20;
配置文件已更改