#密码策略
密码策略用于在口令认证的过程中,由系统根据策略制定的规则,对用户的密码行为和属性进行判断并作出相应的动作,包括:
- 为防止恶意攻击者反复登录尝试猜出密码,当用户因为密码错误连续登录失败达到阈值时,将被锁定一定时间。
- 用户长时间使用同一密码会影响数据库安全,因此系统对于密码的生命长度进行限制。
- 系统在用户登录过程中发现密码已使用超过限制天数时,将进行额外宽限期处理并打印告警日志提示。宽限期过后,该密码完全过期,客户端提示用户输入新密码,用户可以立即更新密码。
- 为防止用户长时间使用相同密码,用户在设置新密码时还需要满足密码复用限制,不允许复用一定时间内使用过的密码以及最近变更次数内使用过的密码。
# profile简介
profile为密码策略的载体,通过一系列参数定义密码策略的内容,使用profile为用户制订密码策略可以使得对用户的密码管理更灵活。
所有参数列示如下:
参数 | 对应策略 | 默认值 |
---|---|---|
FAILED_LOGIN_ATTEMPTS | 帐户被锁定之前可以错误尝试的次数 | 10次 |
PASSWORD_LOCK_TIME | 超过错误尝试次数后用户被锁定的天数 | 1天 |
PASSWORD_LIFE_TIME | 密码可以被使用的天数(生命长度) | UNLIMITED不限制天数 |
PASSWORD_GRACE_TIME | 密码过期之后还可宽限多少天使用原密码(额外宽限期) | UNLIMITED无限宽限 |
PASSWORD_REUSE_TIME | 密码不可复用的天数 假设其为X,表示新密码不能设置为最近X天内使用过的密码 | UNLIMITED无限复用 |
PASSWORD_REUSE_MAX | 密码满足可复用的必要变更次数 假设其为N,表示新密码不能设置为最近N次使用过的密码 | UNLIMITED无限复用 |
PASSWORD_REUSE_TIME与PASSWORD_REUSE_MAX参数需关联设置,具体表现如下:
如果为两个参数都指定了具体数值,则需同时满足PASSWORD_REUSE_TIME指定天数以及密码更改了PASSWORD_REUSE_MAX指定的次数后,用户才能使用重复密码。
如果只为其中一个参数指定了具体数值、另一个参数保持默认的UNLIMITED,则用户永远无法使用重复密码。
# profile管理
YashanDB预置了一个默认的profile,其包含的密码策略为上述参数的默认值。
使用CREATE PROFILE语句可以根据不同的用户需要制订不同的密码策略,并使用ALTER PROFILE、DROP PROFILE语句对profile进行修改、删除等操作。
# profile关联用户
所有新创建的用户在未指定profile时默认关联到默认的profile,受默认的密码策略管控,若指定了某个profile,则受该profile包含的密码策略管控。
使用CREATE USER和ALTER USER语句可以实现用户与指定profile的关联。