修改oracle密码有效期限制的两种思路详解

时间:2020-04-30 14:49来源:计算机教程
由于项目的一个bug,导致好几个现网项目都出现了异常。 一、使用profile管理用户口令 概述:profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的

由于项目的一个bug,导致好几个现网项目都出现了异常。

一、使用profile管理用户口令
概述:profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项时,那么oracle就会将default分配给用户

bug说明:

1.账户锁定
概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令。
例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。
创建profile文件
SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
SQL> alter user scott profile lock_account;

oracle11g,静默安装后用户的密码有效期默认设置为180天,180天后密码将失效,oracle会提示要修改密码。

2.给账户(用户)解锁
SQL> alter user scott account unlock;

我们项目用的是jdbc连接oracle数据库,没法自动处理oracle的这种密码错误提示,直接就连接oracle失败。

3.终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba的身份来操作。
例子:给前面创建的用户test创建一个profile文件,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天。看看怎么做。
SQL> create profile myprofile limit password_life_time 10 password_grace_time 2;
SQL> alter user test profile myprofile;

解决思路一:

二、口令历史
概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
例子:
1)建立profile
SQL>create profile password_history limit password_life_time 10 password_grace_time 2
password_reuse_time 10 //password_reuse_time指定口令可重用时间即10天后就可以重用
2)分配给某个用户
SQL> alter user test profile password_history;

定期修改数据库用户密码。

 三、删除profile
概述:当不需要某个profile文件时,可以删除该文件。
SQL> drop profile password_history 【casade】
注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。。
加了casade,就会把级联的相关东西也给删除掉

解决思路二:

将数据库密码设置为永久有效。

思路一具有一定的安全保护作用,但由于业务不支持修改业务部件中的数据库密码配置,于是决定采用思路二。

具体设置命令如下:

假定我们所使用的数据库用户为test,密码为test123456

步骤一:登陆oracle所在的linux服务器,注意要用dba用户。

步骤二:执行'sqlplus / as sysdba'

步骤三:输入'alter profile default limit password_life_time unlimited;'并回车

步骤四:输入'alter user test identified by test123456;'

步骤五:输入'quit;'退出sqlplus。

编辑:计算机教程 本文来源:修改oracle密码有效期限制的两种思路详解

关键词: