达梦DM-密码策略和登录限制设置

达梦DM-密码策略和登录限制设置

DM数据库密码策略和登录限制设置

1 系统口令策略1.1 查看口令策略1.2 控制台工具修改1.3 系统过程修改

2 资源限制2.1 登录限制

在数据库的用户安全中,口令复杂度策略和资源限制是用户安全重要的一部分。在DM数据库中,口令策略分为系统口令策略和用户口令策略。只有安全版本才支持对每个用户设置口令策略(即用户口令策略),非安全版本,只支持系统口令策略。

DM数据库提供了用户IP地址和登录时段限制功能,本章介绍DM数据库系统口令策略设置和用户登录限制设置。

1 系统口令策略

1.1 查看口令策略

数据库在创建用户时,需要指定用户的密码,密码的复杂度要求由系统的口令策略PWD_POLICY参数决定。系统支持的口令策略有: 0无策略 1禁止与用户名相同 2口令长度不小于9 4至少包含一个大写字母(A-Z) 8至少包含一个数字(0-9) 16至少包含一个标点符号(英文输入法状态下,除”和空格外的所有符号)

口令策略可单独应用,也可组合应用。比如我们即要求禁止用户名与密码相同,又要求口令至少包含一个大写字母,则设置口令策略为1+4=5即可。

SQL> select * from v$dm_ini a where a.PARA_NAME = 'PWD_POLICY';

行号 PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE

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

DESCRIPTION PARA_TYPE

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

1 PWD_POLICY 2 0 31 N 2 2

Flag of password policy SYS

已用时间: 16.146(毫秒). 执行号:4.

可以看出PWD_POLICY参数为动态参数,我们可以通过使用DM控制台工具或调用系统过程SP_SET_PARA_VALUE重新设置PWD_POLICY的值。

1.2 控制台工具修改

在DM安装目录tool下使用DM安装用户执行./console,打开DM控制台工具,在安全相关参数中找到PWD_POLICY参数选项(也可以直接在查找项输入PWD_POLICY参数),即可修改PWD_POLICY参数的值。

注意:DM控制台工具为脱机工具,对参数值的修改通过修改dm.ini文件中参数值来实现,无论参数类型是静态还是动态,都需要重启DM服务器才能使新设置的参数值生效。

1.3 系统过程修改

使用系统过程SP_SET_PARA_VALUE来配置PWD_POLICY参数值。 例如,将PWD_POLICY置为3(1+2),由于PWD_POLICY为动态参数,我们可以同时修改文件和内存参数,此时设置后新参数值立即生效。

执行如下函数修改参数:

SQL> SP_SET_PARA_VALUE(1,'PWD_POLICY',3);

DMSQL 过程已成功完成

已用时间: 10.188(毫秒). 执行号:7.

修改完成后插叙参数可以看到修改后的结果:

SQL> select PARA_NAME,PARA_VALUE, PARA_TYPE from v$dm_ini a where a.PARA_NAME = 'PWD_POLICY';

行号 PARA_NAME PARA_VALUE PARA_TYPE

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

1 PWD_POLICY 3 SYS

已用时间: 2.872(毫秒). 执行号:9.

新建test12345用户,指定密码和用户名相同,系统将会提示密码口令与登录名相同,修改新的密码复杂程度符合要求即可成功。

SQL> create user test12345 identified by test12345;

create user test12345 identified by test12345;

第1 行附近出现错误[-2160]:口令与登录名相同.

已用时间: 1.339(毫秒). 执行号:0.

SQL> create user test12345 identified by test1234567;

操作已执行

已用时间: 17.127(毫秒). 执行号:10.

查询DBA_USERS视图,可以看到新建用户TESTUSER对应的口令策略为15,而SYSSSO、SYSDBA、SYS、SYSAUDITOR系统用户口令策略为0,其他普通用户的口令策略使用原来的口令策略2(创建用户时系统的口令策略)。

SQL> select username,password_versions,account_status from dba_users;

行号 USERNAME PASSWORD_VERSIONS ACCOUNT_STATUS

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

1 SYSDBA 0 OPEN

2 SYS 0 OPEN

3 TEST12345 3 OPEN

4 TEST 2 OPEN

5 SYSSSO 0 OPEN

6 SYSAUDITOR 0 OPEN

6 rows got

已用时间: 185.814(毫秒). 执行号:11.

注释:系统口令策略只对新创建的用户有效,而原来已创建的用户仍然使用原有的系统口令策略。

修改用户的口令策略,非安全版本是不支持的,只有安全版本才支持。非安全版本显示错误如下图。

SQL> alter user test PASSWORD_POLICY 15;

alter user test PASSWORD_POLICY 15;

第1 行附近出现错误[-5630]:非安全版本不能进行此操作.

已用时间: 0.197(毫秒). 执行号:0.

2 资源限制

DM数据库提供用户资源限制、IP地址限制和用户时间段限制功能。

2.1 登录限制

限制test12345用户的登录,当用户连续登录失败10次后将会锁定,限制其登录IP为192.168.3.*的IP网络,登录时间限制为周一01:00至周一8:00。

SQL> alter USER test12345 LIMIT FAILED_LOGIN_ATTEMPS 10 ALLOW_IP "192.168.3.*" ALLOW_DATETIME "MON" "1:00:00" TO "MON" "8:00:00";

操作已执行

已用时间: 5.544(毫秒). 执行号:13.

执行成功后,查询sysusers数字字典可以看到test12345已经限制了IP和时段。

SQL> select username,password_versions,account_status from dba_users;

行号 USERNAME PASSWORD_VERSIONS ACCOUNT_STATUS

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

1 SYSDBA 0 OPEN

2 SYS 0 OPEN

3 TEST12345 3 OPEN

4 TEST 2 OPEN

5 SYSSSO 0 OPEN

6 SYSAUDITOR 0 OPEN

6 rows got

已用时间: 12.709(毫秒). 执行号:14.

SQL> set linesize 200;

SQL> select id,failed_num,grace_time,pwd_policy,allow_addr,allow_dt from sysusers;

行号 ID FAILED_NUM GRACE_TIME PWD_POLICY ALLOW_ADDR ALLOW_DT

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

1 50331649 0 0 0 NULL NULL

2 50331648 0 0 0 NULL NULL

3 50331650 0 0 0 NULL NULL

4 50331651 0 0 0 NULL NULL

5 50331749 3 10 2

6 50331752 10 10 3 192.168.3.* MON&1:00:00&MON&8:00:00

6 rows got

已用时间: 0.333(毫秒). 执行号:16.

修改登录限制

SQL> alter USER test12345 LIMIT FAILED_LOGIN_ATTEMPS 10 ALLOW_IP NULl ALLOW_DATETIME NULL;

操作已执行

已用时间: 10.595(毫秒). 执行号:19.

SQL> select id,failed_num,grace_time,pwd_policy,allow_addr,allow_dt from sysusers;

行号 ID FAILED_NUM GRACE_TIME PWD_POLICY ALLOW_ADDR ALLOW_DT

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

1 50331649 0 0 0 NULL NULL

2 50331648 0 0 0 NULL NULL

3 50331650 0 0 0 NULL NULL

4 50331651 0 0 0 NULL NULL

5 50331749 3 10 2

6 50331752 10 10 3

6 rows got

已用时间: 0.224(毫秒). 执行号:20.