从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。
分类: Sybase
2013-11-14 10:03:41
--定义口令有效期,下面的例子是设定口令的有效期为30天
sp_iqmodifyadmin ('password_life_time','30',NULL)
--强制账户在下一次登录时修改密码
sp_iqmodifyadmin (' password_expiry_on_next_login ','on',NULL)
2. 定制口令检查规则
在IQ数据库中,可以通过编写自定义函数灵活定制用户自己的口令检查规则,下面通过一个例子加以说明。我们假设这个例子实现如下口令规则:
*最小密码长度要求为8位
*至少包含一个数字
*至少包含一个字母(大小写均可)
*至少包含一个特殊字符
下面是实现的方法和步骤:
--创建用户自定义的password检查规则函数
CREATE FUNCTION DBA.f_verify_pwd(user_name varchar(128), new_pwd varchar(255))
RETURNS varchar(255)
BEGIN
--最小密码长度要求8个字符
IF length(new_pwd)<8 THEN
RETURN('Password length is too short,at least 8 char');
END IF;
--至少包含一个数字.
IF patindex('%[0-9]%',new_pwd)=0 THEN
RETURN('Password must contains a digital');
END IF;
--至少包含一个字母,大小写均可.
IF patindex('%[A-Z]%',UCASE(new_pwd))=0 THEN
RETURN('Password must contains a letter');
END IF;
--至少包含一个特殊字符
IF (patindex('%[!-/]%',new_pwd)=0) AND (patindex('%[:-@]%',new_pwd)=0) THEN
RETURN('Password must contains a special char');
END IF;
-- success
RETURN(null);
END;
--为函数设定执行权限
GRANT EXECUTE ON DBA.f_verify_pwd TO PUBLIC;
--改变IQ缺省的口令检查规则函数为用户自定义函数
--在执行GRANT CONNECT TO userid IDENTIFIED BY paasword语句时或者
--在执行sp_iqaddlogin时,该数据库选项指定
--的函数将被调用,以对口令规则进行检查.
SET OPTION public.verify_password_function = 'DBA.f_verify_pwd';
在执行了上面的命令和设置之后,我们进行一下简单的测试:
sp_iqaddlogin oltp_user,'aaaaaa' --报口令长度不足8位的错
sp_iqaddlogin oltp_user,'aaaaaaaa' --报口令至少包含一个数字
sp_iqaddlogin oltp_user,'12345678' --报口令至少包含一个字母
sp_iqaddlogin oltp_user,'aaaaaa1a' --报口令至少包含一位特殊字符
sp_iqaddlogin oltp_user,'aaaa&a1a' --执行成功,口令符合规则