2024年5月29日发(作者:)

Oracle 密码复杂度的设置

--某些情况下,需要强制Oracle数据库中的某些用户(例如 sys, system, 或者其他)的密

码,不能太简单。

--虽然作为数据库管理人员, 不会设置太简单的密码。

但是,当需要 数据库级别, 不允许设置太简单的密码,如果设置太简单的密码,则拒绝本

次操作。

首先:先查询一下. 当前数据库中, 都有哪些 profile

SELECT

DISTINCT profile

FROM

dba_profiles;

一般情况下, 所有的用户, 是使用一个名字叫 DEFAULT 的 profile

下面这个语句,查询 DEFAULT 的 profile , 密码方面的设置。

SQL> select

2 RESOURCE_NAME,

3 LIMIT

4 from

5 dba_profiles

6 where

7 profile='DEFAULT'

8 AND RESOURCE_TYPE = 'PASSWORD';

RESOURCE_NAME LIMIT

-------------------------------- ------------

FAILED_LOGIN_ATTEMPTS UNLIMITED

PASSWORD_LIFE_TIME UNLIMITED

PASSWORD_REUSE_TIME UNLIMITED

PASSWORD_REUSE_MAX UNLIMITED

PASSWORD_VERIFY_FUNCTION NULL

PASSWORD_LOCK_TIME UNLIMITED

PASSWORD_GRACE_TIME UNLIMITED

已选择7行。

注意到,那个 PASSWORD_VERIFY_FUNCTION 的 LIMIT 是 NULL

也就是没有任何的密码复杂度限制。

由于听说,直接执行那个 , 会修改 DEFAULT 这个 PROFILE, 从而导致影

响所有的用户。

因此只好去找个那个 verify_function 的代码,手工做点修改处理。

原有的代码是 数字 + 大小写 + 符号。 长度要大于等于4

现在修改为仅仅 数字 + 大小写,长度要大于等于10。