使用profile的PASSWORD_VERIFY_FUNCTION参数实现自定义的密码验证规则
profile的PASSWORD_VERIFY_FUNCTION参数,允许我们在创建用户或者更改用户
密码时实施自定义的密码验证规则。
1.首先,我们需要创建一个自己的实现密码验证规则的函数,该函数必须创建在sys模式
下,而且必须有三个类型为varchar2的输入参数,第一个参数,包含我们要修改的用户名,第
二个参数包含新密码,第三个参数包含旧密码,并且返回类型为布尔类型。
举一个简单的例子,如果我们需要使密码最少保持6位,并在用户修改密码时在
sys.passwd_changed表中记录用户的旧密码和新密码:
首先创建表passwd_changed:
SQL> conn sys/*** as sysdba
Connected.
SQL> create table passwd_changed
2 (
3 user_name varchar2(20) ,
4 old_passwd varchar2(100) ,
5 new_passwd varchar2(100)
6 )
7 ;
Table created.
创建实现密码自定义规则的函数my_password_verify:
SQL> CREATE OR REPLACE FUNCTION my_password_verify (username VARCHAR2 ,password VARCHAR2 ,old_password VARCHAR2 ) RETURN BOOLEAN IS
2 BEGIN
3 IF LENGTH(password) < 6 THEN
4 raise_application_error(-20001,'Password must be at least 6 characters long');
5 END IF;
6 INSERT INTO passwd_changed VALUES(username,old_password,password);
7 RETURN(TRUE);
8 END;
9 /
Function created.
2.创建profile实施自定义密码验证规则:
SQL> create profile TEST_PROFILE limit
2 password_verify_function MY_PASSWORD_VERIFY;
Profile created.
3.使用我们创建的profile:TEST_PROFILE 创建用户test_user,密码为test,看看会发生
什么:
SQL> create user test_user
2 identified by test
3 default tablespace USERS
4 temporary tablespace temp
5 profile TEST_PROFILE;
create user test_user
*
ERROR at line 1:
ORA-28003: password verification for the specified password failed
ORA-20001: Password must be at least 6 characters long
可以看到,我们自定义的密码验证规则已经生效,密码:test长度小于6位时,创建用户失败。
4.我们修改密码为test12,重新创建用户test_user:
SQL> create user test_user
2 identified by test12
3 default tablespace USERS
4 temporary tablespace temp
5 profile TEST_PROFILE;
User created.
密码:test12长度等于6位时,创建用户成功。
5.检查sys.passwd_changed表数据:
SQL> select * from sys.passwd_changed;
USER_NAME OLD_PASSWD NEW_PASSWD
-------------------- -------------------------
TEST_USER TEST12
6.更改test_user的密码为test,看看是否可以成功:
SQL> alter user test_user identified by test;
alter user test_user identified by test
ORA-28003: password verification for the specified password failed
ORA-20001: Password must be at least 6 characters long
7.更改test_user的密码为test123,看看是否可以成功:
SQL> alter user test_user identified by test123;
User altered
8.检查sys.passwd_changed表数据:
SQL> select * from sys.passwd_changed;
USER_NAME OLD_PASSWD NEW_PASSWD
-------------------- -------------------------
TEST_USER TEST12
TEST_USER TEST123
使用profile的PASSWORD_VERIFY_FUNCTION参数实现自定义的密码验证规则相关推荐
- hive 配置用户名_配置HiveServer2的安全策略之自定义用户名密码验证
具体从网上看 http://doc.mapr.com/display/MapR/Using+HiveServer2#UsingHiveServer2-ConfiguringCustomAuthenti ...
- vue 表单验证正则_vue elementUI如何自定义表单验证规则
一.elementUI自带了一部分表单验证规则,本文讲解如何使用自定义验证规则来完成密码的二次验证. 1.1.首先添加验证邮箱和电话规则和正则表达式// 验证邮箱的规则 var checkEmail ...
- java wcf 未提供用户名_WCF安全之自定义用户名密码验证方式 | 学步园
概述 Windows Communication Foundation (WCF) 是 Microsoft 为构建面向服务的应用程序而提供的统一编程模型(摘自MSDN),在分布式环境下的安全问题尤为重 ...
- security工作笔记007---spring security自定义AuthenticationProvider,验证规则
JAVA技术交流QQ群:170933152 AuthenticationProvider 认证是由 AuthenticationManager 来管理的,但是真正进行认证的是 Authenticati ...
- WCF分布式安全开发实践(6):传输安全模式之自定义X509Certificate证书验证
今天继续WCF分布式安全开发实践(6):传输安全模式之自定义X509Certificate证书验证.本文介绍的内容主要是:主要是传输安全模式的UserNamePassword身份验证方式,基于WSHt ...
- laravel5.5 自定义验证规则——手机验证RULE
相信很多小伙伴和我一样烦恼,laravel没有自带手机号的验证,每次验证手机号都要写正则这类的规则,每次都是repeat yourself!违背了编码的一个原则,就是Don't repeat your ...
- SAP 自定义登录密码规则
导语:SAP在S4 2020以后默认的登录密码规则长度位10位,而且要包含大小写字母,每次登录都很麻烦,大小写转换,下面分享一下自定义登录密码的规则,我自定义为6位数字就可以. 一.SU01创建安全策 ...
- php自定义函数参数,php自定义函数的参数
PHP自定义函数时怎么指定参数类型? 请问:PHP自定义函数时怎么指定参数类型? 比如 function foo(int $n, strclass User{ public $name; public ...
- seaborn使用boxplot函数进行箱图可视化(使用色彩调色板自定义设置箱图的颜色、sns.set_palette全局设置palette参数、自定义全局调色板色彩)
seaborn使用boxplot函数进行箱图可视化(使用色彩调色板自定义设置箱图的颜色.sns.set_palette全局设置palette参数.自定义全局调色板色彩) 目录
最新文章
- 基于ESP32的竞赛裁判系统功能调试-激光信号调试
- 安装discuz论坛mysqli解决方法
- 在jmeter测试中模拟不同的带宽环境
- yamlcpp遍历_OpenCV文件输入和输出使用XML和YAML文件
- 电机高频注入原理_永磁同步电机转子位置与速度估算的新方法,精度好,性价比高...
- HOW TO:构造Java类
- Docker Desktop宣布收费;腾讯7月已申请注册WECHAT CLOUD商标;MongoDB成为当前最具价值开源软件公司...
- 程序员35岁前需要完成的10件事
- 【图像去噪】基于matlab非局部均值(NLM)滤波图像去噪【含Matlab源码 420期】
- 【万字讲解C语言入门小游戏】——三子棋
- watch 深度监听及立即执行
- html悬浮客服代码,js QQ客服悬浮效果实现代码
- owncloud 私有云搭建
- 图片哈希概述(image hash)
- 电脑更换硬盘 | 怎么迁移数据到新硬盘?
- thinkphp3.2读取Excel文件
- 一个好用的软件定时器模块MultiTimer
- 【安卓wechat微信导出聊天记录】
- SpringBoot整合Elasticsearch,中软国际java二面华为面试
- 2022数模国赛B题无人机第一题第一小问的简单编程