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.[[email protected] ~]# 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

原文地址:https://www.cnblogs.com/linyinmobayu/p/12395387.html

时间: 2024-10-04 11:20:26

Oracle密码验证函数与Create Profile的相关文章

【翻译自mos文章】oracle密码管理策略

oracle密码管理策略 参考原文: Oracle Password Management Policy (Doc ID 114930.1) 细节: 密码管理通过使用profile来建立. 当密码过期后,如果user有能力独立地从 end-user application(前台业务软件)修改密码的话,通常的推荐是只指派给这些schemas 一个profile,该profile有  password aging an expiration features . 通常这意味着application(

案例:python实现名字汉字验证,密码验证

import re # 定义正则表达式对象(全局变量大写) # 验证汉字 RE_CHINESE = re.compile(r'^[\u4e00-\u9fa5]{1,8}$') # 验证密码,字母开头,包含字母,数字,下划线 RE_PASSWORD = re.compile(r'^[a-zA-Z]\w{7,17}$') # 定义汉字验证函数 def verify_chinese(name): return RE_CHINESE.findall(name) # 定义密码验证函数 def verify

Oracle Create Profile

一.目的: Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内. 二.条件: 创建profile必须要有CREATE PROFILE的系统权限. 为用户指定资源限制,必须: 1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效.该改变对密码资

ORACLE profile系列4 --CREATE PROFILE

这篇博客是ORACLE profile系列的第四篇,主要说一下,如果创建profile和使用profile进行资源和密码控制 CREATE PROFILE Note: Oracle recommends that you use the Database Resource Manager rather than this SQL statement to establish resource limits. The Database Resource Manager offers a more

oracle external密码验证

什么是external密码验证 当OS user 中存在和DB user 同名的用户时   直接使用和DB user 同名的OS user 可以不输入密码直接登录数据库, [[email protected] ~] sqlplus /       如果数据库中存在Oracle用户,则可以不输入密码直接登录 什么是外部external密码验证 当远程服务器OS user 中存在和本地DB user 同名的用户时   直接远程服务器使用和DB user 同名的OS user 连接本地数据库可以不输入

centos6.5中部署Zeppelin并配置账号密码验证

centos6.5中部署Zeppelin并配置账号密码验证1.安装JavaZeppelin支持的操作系统如下图所示.在安装Zeppelin之前,你需要在部署的服务器上安装Oracle JDK 1.7或以上版本, 并配置好相应的JAVA_HOME环境变量.以CentOS为例,具体操作过程如下: a)下载并安装jdk-8u111-linux-x64.rpm # rpm -ivh jdk-8u111-linux-x64.rpm b)配置环境变量.在/etc/profile文件结尾添加: export

(转)Oracle 密码文件

--============================== -- Oracle密码文件 --============================== /* 一.密码文件 作用:主要进行DBA权限的身份认证 DBA用户:具有sysdba,sysoper权限的用户被称为dba用户.默认情况下sysdba角色中存在sys用户,sysoper角色中存在system用户 二.Oracle的两种认证方式: 1.使用与操作系统集成的身份验证 2.使用Oracle数据库的密码文件进行身份认证 三.密码

Oracle生成流水号函数

1:日期范围上 smalldatetime的有效时间范围1900/1/1~2079/6/6 datetime的有效时间范围1753/1/1~9999/12/31 2:精准度上 smalldatetime只精准到分,而datetime则可精准到3位的毫秒. 3:存储空间上 smalldatetime占用4个字节,前2个字节存储base date(1900年1月1日)之后的天数.后2个字节存储午夜后的分钟数. datetime占用8个字节,前4个字节存储base date(即1900年1月1日)之前

Oracle之自定义函数

数据库中函数包含四个部分:声明.返回值.函数体和异常处理. --没有参数的函数 create or replace function get_user return varchar2 is v_user varchar2(50); begin select username into v_user from user_users; return v_user; end get_user; --测试 方法一 select get_user from dual; 方法二 SQL> var v_nam