千家信息网

自定义密码验证函数

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,在Oracle中可以很方便的自定义密码验证函数,用来检验用户的新密码是否符合安全标准。下面是一个最简单的自定义验证函数的例子:SQL> CONN / AS SYSDBA已连接。SQL> CREATE
千家信息网最后更新 2025年12月02日自定义密码验证函数

Oracle中可以很方便的自定义密码验证函数,用来检验用户的新密码是否符合安全标准。

下面是一个最简单的自定义验证函数的例子:

SQL> CONN / AS SYSDBA
已连接。
SQL> CREATE OR REPLACE FUNCTION F_MY_VERIFY
2 (P_USERNAME IN VARCHAR2, P_PASSWORD IN VARCHAR2, P_OLD_PASSWORD IN VARCHAR2)
3 RETURN BOOLEAN AS
4 BEGIN
5 IF P_PASSWORD = P_OLD_PASSWORD THEN
6 RAISE_APPLICATION_ERROR(-20001, 'NEW PASSWORD SAME AS OLD PASSWORD.');
7 END IF;
8
9 IF P_PASSWORD = P_USERNAME THEN
10 RAISE_APPLICATION_ERROR(-20002, 'PASSWORD SAME AS USERNAME.');
11 END IF;
12
13 IF INSTR(P_PASSWORD, P_OLD_PASSWORD, 1) > 0 OR INSTR(P_OLD_PASSWORD, P_PASSWORD, 1) > 0 THEN
14 RAISE_APPLICATION_ERROR(-20003, 'NEW PASSWORD AND OLD PASSWORD ARE LIKE EACH OTHER.');
15 END IF;
16
17 IF INSTR(P_PASSWORD, P_USERNAME, 1) > 0 OR INSTR(P_USERNAME, P_PASSWORD, 1) > 0 THEN
18 RAISE_APPLICATION_ERROR(-20004, 'PASSWORD AND USERNAME ARE LIKE EACH OTHER.');
19 END IF;
20
21 IF LENGTH(P_PASSWORD) < 6 THEN
22 RAISE_APPLICATION_ERROR(-20005, 'PASSWORD TOO SHORT.');
23 END IF;
24
25 RETURN TRUE;
26 END;
27 /

函数已创建。

将当前的验证函数设置为DEFAULT策略的验证函数:

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION F_MY_VERIFY;

配置文件已更改

最后检验一下验证函数是否正常工作:

SQL> CONN U1/P_U1
已连接。
SQL> ALTER USER U1 IDENTIFIED BY P_U1 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY P_U1 REPLACE P_U1
*
1 行出现错误:
ORA-28007:
无法重新使用口令


SQL> ALTER USER U1 IDENTIFIED BY U1 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY U1 REPLACE P_U1
*
1 行出现错误:
ORA-28003:
指定口令的口令验证失败
ORA-20002: PASSWORD SAME AS USERNAME.


SQL> ALTER USER U1 IDENTIFIED BY P_U123 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY P_U123 REPLACE P_U1
*
1 行出现错误:
ORA-28003:
指定口令的口令验证失败
ORA-20003: NEW PASSWORD AND OLD PASSWORD ARE LIKE EACH OTHER.


SQL> ALTER USER U1 IDENTIFIED BY PASS_U1 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY PASS_U1 REPLACE P_U1
*
1 行出现错误:
ORA-28003:
指定口令的口令验证失败
ORA-20004: PASSWORD AND USERNAME ARE LIKE EACH OTHER.


SQL> ALTER USER U1 IDENTIFIED BY 12345 REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY 12345 REPLACE P_U1
*
1 行出现错误:
ORA-00988:
口令缺失或无效


SQL> ALTER USER U1 IDENTIFIED BY "12345" REPLACE P_U1;
ALTER USER U1 IDENTIFIED BY "12345" REPLACE P_U1
*
1 行出现错误:
ORA-28003:
指定口令的口令验证失败
ORA-20005: PASSWORD TOO SHORT.


SQL> ALTER USER U1 IDENTIFIED BY NEW_COMPLICATE_PASSWORD REPLACE P_U1;

用户已更改。

口令 验证 函数 错误 用户 检验 密码 安全 例子 安全标准 文件 标准 策略 缺失 新密 工作 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手机网络安全使用心得 ftp服务器的配置与管理 网络安全研究生是学什么的 服务器系统维护招聘 云服务器房间密码 方舟生存进化非专用服务器和单人 网络安全馆黑科技 网络技术与执法是做什么的 北流java软件开发 上海芃然网络技术有限公司 蛋白功能域数据库 鸡西软件开发公司哪家好 学网络技术的出来有前途吗 湖北软件开发厂家现货 深圳团帮科技互联网有限公司 软件开发的需求清单 大连靠谱教育系统开发软件开发 网络安全密钥选择填空 网络安全全扫描的优缺点 学校机房服务器定期检查处理 如何进入云服务器管理界面 虚拟汽车仪表用什么软件开发 网络安全专项治理总结2019 皓月云进不去服务器 数据库技术看什么书好 网络数据库课程设计购物车程序 教育资助数据库建设计划 江苏小型软件开发价格多少 软件开发公司可以报什么项目 温州桌面软件开发是做什么的
0