多数 Oracle 数据库用户都使用默认配置文件创建用户帐户。自从 Oracle 8 开始,就可以通过创建一个配置文件,然后使用以下两个语句之一分配给它一个用户来锁定一个帐户。
CREATE USER myuser . . . PROFILE myprofile;
ALTER USER myuser [被屏蔽广告]PROFILE myprofile;
入侵数据库帐户的一个典型尝试是试用几个常用的口令,比如“welcome”或者用户名之类的。可以使用配置文件标记FAILED_LOGIN_ATTEMPTS 阻止多次失败的登录尝试。
CREATE PROFILE myprofile LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1;
分配给这个配置文件的用户将会在五次以不正确的口令尝试登录之后被拒之于门外。帐户将会在一天之内不可访问,直至 DBA 发出了一个ALTER USER ACCOUNT UNLOCK 命令。
即使在几年之后,我还发现在以前的项目中我的老口令依然能够使用。这是一个很好的反面例子,说明我们要对口令的生存时间设置一个期限,使其在特定的一段时间(也就是合同的结束之日)之后过期。另外还有一种选择,即允许一个特定的宽限期,这对不经常使用的项目很有用。如果用户在口令过期之前不登录,用户依然可以连接,但是会显示一个警告,直到宽限期过期。在配置文件中使用PASSWORD_LIFE_TIME 和PASSWORD_GRACE_TIME 标记能够启用这些特性。
ALTER PROFILE myprofile LIMIT
PASSWORD_LIFE_TIME 30
PASSWORD_GRACE_TIME 3;