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参数实现自定义的密码验证规则相关推荐

  1. hive 配置用户名_配置HiveServer2的安全策略之自定义用户名密码验证

    具体从网上看 http://doc.mapr.com/display/MapR/Using+HiveServer2#UsingHiveServer2-ConfiguringCustomAuthenti ...

  2. vue 表单验证正则_vue elementUI如何自定义表单验证规则

    一.elementUI自带了一部分表单验证规则,本文讲解如何使用自定义验证规则来完成密码的二次验证. 1.1.首先添加验证邮箱和电话规则和正则表达式// 验证邮箱的规则 var checkEmail  ...

  3. java wcf 未提供用户名_WCF安全之自定义用户名密码验证方式 | 学步园

    概述 Windows Communication Foundation (WCF) 是 Microsoft 为构建面向服务的应用程序而提供的统一编程模型(摘自MSDN),在分布式环境下的安全问题尤为重 ...

  4. security工作笔记007---spring security自定义AuthenticationProvider,验证规则

    JAVA技术交流QQ群:170933152 AuthenticationProvider 认证是由 AuthenticationManager 来管理的,但是真正进行认证的是 Authenticati ...

  5. WCF分布式安全开发实践(6):传输安全模式之自定义X509Certificate证书验证

    今天继续WCF分布式安全开发实践(6):传输安全模式之自定义X509Certificate证书验证.本文介绍的内容主要是:主要是传输安全模式的UserNamePassword身份验证方式,基于WSHt ...

  6. laravel5.5 自定义验证规则——手机验证RULE

    相信很多小伙伴和我一样烦恼,laravel没有自带手机号的验证,每次验证手机号都要写正则这类的规则,每次都是repeat yourself!违背了编码的一个原则,就是Don't repeat your ...

  7. SAP 自定义登录密码规则

    导语:SAP在S4 2020以后默认的登录密码规则长度位10位,而且要包含大小写字母,每次登录都很麻烦,大小写转换,下面分享一下自定义登录密码的规则,我自定义为6位数字就可以. 一.SU01创建安全策 ...

  8. php自定义函数参数,php自定义函数的参数

    PHP自定义函数时怎么指定参数类型? 请问:PHP自定义函数时怎么指定参数类型? 比如 function foo(int $n, strclass User{ public $name; public ...

  9. seaborn使用boxplot函数进行箱图可视化(使用色彩调色板自定义设置箱图的颜色、sns.set_palette全局设置palette参数、自定义全局调色板色彩)

    seaborn使用boxplot函数进行箱图可视化(使用色彩调色板自定义设置箱图的颜色.sns.set_palette全局设置palette参数.自定义全局调色板色彩) 目录

最新文章

  1. 基于ESP32的竞赛裁判系统功能调试-激光信号调试
  2. 安装discuz论坛mysqli解决方法
  3. 在jmeter测试中模拟不同的带宽环境
  4. yamlcpp遍历_OpenCV文件输入和输出使用XML和YAML文件
  5. 电机高频注入原理_永磁同步电机转子位置与速度估算的新方法,精度好,性价比高...
  6. HOW TO:构造Java类
  7. Docker Desktop宣布收费;腾讯7月已申请注册WECHAT CLOUD商标;MongoDB成为当前最具价值开源软件公司...
  8. 程序员35岁前需要完成的10件事
  9. 【图像去噪】基于matlab非局部均值(NLM)滤波图像去噪【含Matlab源码 420期】
  10. 【万字讲解C语言入门小游戏】——三子棋
  11. watch 深度监听及立即执行
  12. html悬浮客服代码,js QQ客服悬浮效果实现代码
  13. owncloud 私有云搭建
  14. 图片哈希概述(image hash)
  15. 电脑更换硬盘 | 怎么迁移数据到新硬盘?
  16. thinkphp3.2读取Excel文件
  17. 一个好用的软件定时器模块MultiTimer
  18. 【安卓wechat微信导出聊天记录】
  19. SpringBoot整合Elasticsearch,中软国际java二面华为面试
  20. 2022数模国赛B题无人机第一题第一小问的简单编程

热门文章

  1. Messagebox.Show()常用参数的讨论
  2. 爬虫初学:爬取小说网小说(详细讲解)
  3. Spring的注解说明
  4. 成本--积分兑换商城搭建必须要考虑的核心问题
  5. 利用UIBezierPath实现的橡皮筋动画效果(OC版)
  6. input type=file 获取选择文件名称、路径方法及input上传按钮美化
  7. C# listbox 和propertyGrid结合使用
  8. 小觅智能 |MSCKF 学习笔记
  9. Ubuntu软件推荐
  10. 大模型LLM微调的方式:Instruction/Promt/Prefix/PET、