Profiles
-
Profile 是一个以名称标识的集合,用于管理 密码 和 资源限制。
-
每个用户都对应一个profiles,可以通过
CREATE USER
或ALTER USER
命令分配给用户。 -
Profiles 可以启用或禁用。
-
Profiles 可以关联到默认的
DEFAULT
Profile。
密码管理(Password Management)
密码管理分为四个部分:
-
Account Locking(账户锁定)
-
首先检测用户是否被锁定。
-
-
Password Verification(密码验证)
-
如何检测设置的密码是否足够复杂。
-
-
Password Expiration and Aging(密码到期与老化)
-
查看口令是否在有效期内。
-
-
Password History(密码历史记录)
-
检测口令是否重复。
-
启用密码管理(Enabling Password IMgmt)
设置密码管理:通过使用配置文件(profiles)并将其分配给用户实现。
管理账户状态:使用 CREATE USER
或 ALTER USER
命令来锁定、解锁或过期账户。
密码限制:密码限制始终会被强制执行。
启用密码管理:以 SYS
用户身份运行 utlpwdmg.sql
脚本来启用密码管理功能。
创建proflie
CREATE PROFILE my_profile LIMIT
FAILED_LOGIN_ATTEMPTS n -- 设置用户连续登录失败的最大次数。
PASSWORD_LOCK_TIME n -- 指定账户锁定的持续时间(以天为单位)。
PASSWORD_LIFE_TIME n -- 设置密码的有效期(天数)。
PASSWORD_GRACE_TIME n -- 密码到期后提供的宽限期(天数)。
PASSWORD_REUSE_TIME n -- 控制密码重复使用的时间间隔(以天为单位)。
PASSWORD_REUSE_MAX n -- 控制用户在更改密码的次数达到指定值之前,不能重复使用旧密码。
PASSWORD_VERIFY_FUNCTION NULL; -- 密码验证函数
Password Account Locking
-
FAILED_LOGIN_ATTEMPTS
-
设置用户连续登录失败的最大次数。
-
超过此次数后,账户会自动锁定。
-
-
PASSWORD_LOCK_TIME
-
指定账户锁定的持续时间(以天为单位)。
-
值为:
-
0
:立即解锁。 -
UNLIMITED
:永久锁定(需管理员手动解锁)。 -
其他数字(如
1
表示锁定一天)。
-
-
Password Expiration & Aging
-
PASSWORD_LIFE_TIME
-
设置密码的有效期(天数)。
-
用户密码达到有效期后,会被强制要求更改密码。
-
-
PASSWORD_GRACE_TIME
-
密码到期后提供的宽限期(天数)。
-
宽限期内用户仍可以登录,但会收到密码即将过期的警告。宽限期结束后,用户账户会被锁定,直到密码更新。
-
Password History
-
PASSWORD_REUSE_TIME
-
控制密码重复使用的时间间隔(以天为单位)。
-
如果设置为
UNLIMITED
,表示密码永远不能重复使用。
-
-
PASSWORD_REUSE_MAX
-
控制用户在更改密码的次数达到指定值之前,不能重复使用旧密码。
-
如果设置为
UNLIMITED
,表示没有限制。
-
Password Verification
-
PASSWORD_VERIFY_FUNCTION
-
指定函数校验密码复杂度
-
修改Profile
修改 Profile 的语法是使用 ALTER PROFILE
语句。
ALTER PROFILE profile_name LIMIT parameter_name value [, parameter_name value ...];
-
profile_name
:要修改的 Profile 的名称。 -
parameter_name
:要修改的参数名称,比如PASSWORD_VERIFY_FUNCTION
、FAILED_LOGIN_ATTEMPTS
等。 -
value
:对应参数的新值。
删除profile
删除一个 Profile 使用 DROP PROFILE
语句。
DROP PROFILE profile_name [CASCADE];
profile_name
:要删除的 Profile 的名称。
CASCADE
:如果该 Profile 已分配给用户,则必须使用 CASCADE
关键字。这样会将分配该 Profile 的用户重新分配到默认 Profile。