zoukankan      html  css  js  c++  java
  • Oracle密码验证函数与Create Profile

     

     

    今天看到了一个oracle密码函数的东西,就在网上找文档自己做测试,刚开始看不懂,最后做完记录一下

    密码函数的作用就是要将用户密码进行限制,比如申请一个网站的账号的时候,密码会要求你不少于8位,必须要有一个大小写,字符,或者英文加上数字才可以,这些都是可以对create user的密码进行限制的,首先要接触一个profile的参数,之前没接触过这个,profile的作用就是对一些CPU的资源,或者用户密码进行限制的。

    oracle 用户管理 :profile + tablespace + role + user

    Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。

    profile文件可以控制:CPU的时间 、I/O的使用 、IDLE TIME(空闲时间) 、CONNECT TIME(连接时间) 、并发会话数量 、口令机制。 

     

    1.[root@orcl ~]# cat $ORACLE_HOME/rdbms/admin/utlpwdmg.sql      可以查看oracle提供的密码函数脚本

    2.SQL> @?/rdbms/admin/utlpwdmg.sql                  执行函数脚本

    3.创建profile,大部分默认选项都是unlimited不进行限制的

    CREATE PROFILE 资源文件名 LIMIT { resource_parameters | password_parameters} 创建profile用户,并起一个资源文件名
    SESSIONS_PER_USER UNLIMITED           每个用户名并行会话数 
    CPU_PER_SESSION UNLIMITED          每会话可用的CPU时间,单位0.01秒 
    CPU_PER_CALL UNLIMITED           一次SQL调用(解析、执行和获取)允许的CPU时间 
    CONNECT_TIME UNLIMITED           会话连接时间(分钟) 
    IDLE_TIME 600                   10小时连续不活动的话系统自动断开,连接会话空闲时间(分钟),超出将断开
    LOGICAL_READS_PER_SESSION UNLIMITED    指定一个会话允许读的数据块的数目,包括从内存和磁盘读的所有数据块

    LOGICAL_READS_PER_CALL UNLIMITED     指定一次执行SQL(解析、执行和提取)调用所允许读的数据块的最大数目

    COMPOSITE_LIMIT UNLIMITED         指定一个会话的总的资源消耗,以service units单位表示。Oracle数据库以有利的方式计算cpu_per_session

    PRIVATE_SGA UNLIMITED             指定一个会话可以在共享池(SGA)中所允许分配的最大空间,以字节为单位

    FAILED_LOGIN_ATTEMPTS 10          指定锁定用户的登录失败次数为10次,超过10次则系统被自动锁定
    PASSWORD_LIFE_TIME 180           指定用户同一密码锁允许使用的天数为180天
    PASSWORD_REUSE_TIME UNLIMITED      密码可重用的间隔时间(结合PASSWORD_REUSE_MAX) 
    PASSWORD_REUSE_MAX UNLIMITED         密码最大改变次数(结合PASSWORD_REUSE_TIME) 
    PASSWORD_LOCK_TIME 1            指定用户被锁定天数为1天,超过试错次数后,被锁定的天数,默认1天
    PASSWORD_GRACE_TIME 10          数据库发出警告到登录失效前的宽限天数 
    PASSWORD_VERIFY_FUNCTION verify_function_11G

    脚本:

    CREATE PROFILE SYSTEM_PROFILE LIMIT 
    SESSIONS_PER_USER UNLIMITED 
    CPU_PER_SESSION UNLIMITED 
    CPU_PER_CALL UNLIMITED 
    CONNECT_TIME UNLIMITED 
    IDLE_TIME 600 
    LOGICAL_READS_PER_SESSION UNLIMITED 
    LOGICAL_READS_PER_CALL UNLIMITED 
    COMPOSITE_LIMIT UNLIMITED 
    FAILED_LOGIN_ATTEMPTS 10
    PASSWORD_LIFE_TIME 180
    PASSWORD_REUSE_TIME UNLIMITED 
    PASSWORD_REUSE_MAX UNLIMITED 
    PASSWORD_GRACE_TIME 10 
    PASSWORD_VERIFY_FUNCTION verify_function_11G;

    4.创建测试用户测试一下

    --创建用户并使用自定义的配置文件
    create user 用户名 identified by 密码 default tablespace 默认表空间名 temporary tablespace 临时表空间名 profile 资源文件名;

    SQL> create user hzh1 identified by 123 profile SYSTEM_PROFILE;          用户密码设置成123

    SQL> create user hzh1 identified by 12345678 profile SYSTEM_PROFILE;      用户密码设置成8位

    SQL> create user hzh1 identified by a12345678 profile SYSTEM_PROFILE;      用户密码设置数字加字符

    仅做了一点密码复杂度的测试,下面还可以做登录密码超过10次被锁,设置系统超时不操作断开,会话连接时间等的测试

    参考文档:

    https://www.cnblogs.com/hong-dan/p/12162708.html    创建profile必须要有CREATE PROFILE的系统权限。为用户指定资源限制

    https://www.linuxidc.com/Linux/2017-10/147681.htm      实验过程

    转自:https://www.cnblogs.com/houzhiheng/p/12395315.html
  • 相关阅读:
    【转】VC 隐藏模块、MFC 改变窗口类名
    【转】Reason: The specified virtual disk needs repair.
    关于CreateProcess函数一些经验
    利用NtQuerySystemInformation函数遍历进程,遍历线程,获取线程挂起或运行状态
    uefi安装win7,deepin15双系统后grub没有windows选项
    X64下的虚拟地址到物理地址的转换
    WinDBG 技巧:列出模块(DLL/EXE)里面所有的符号(symbol)
    windows7内核分析之x86&x64第二章系统调用
    使用VS Code写PHP并进行调试
    使用CreateProcess创建新的process 并返回process运行结束返回值
  • 原文地址:https://www.cnblogs.com/linyinmobayu/p/12395387.html
Copyright © 2011-2022 走看看