zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

oracle用户更改密码_修改system用户密码

Oracle密码密码 用户 修改 更改 system
2023-06-13 09:12:51 时间

大家好,又见面了,我是你们的朋友全栈君。

前几天通过plsql登录数据库时,提示密码过期,需要修改密码,那就修改呗。改完过了会,再登录,发现用户被锁了。那就去解锁下吧。

一、登录数据库服务器

su oracle;

sqlplus "/as sysdba";

alter user xx account unlock;

重新登,发现还是锁着的,怀疑是有应用服务一直在尝试连数据库导致锁定,遂先把服务给停掉了。

二、查看用户状态

发现状态是LOCKED(TIMED),也就是用户登录失败次数超过限制被锁定,且设置了时效的。

三、查看profile配置

 SELECT resource_name,resource_type,limit FROM dba_profiles WHERE profile='DEFAULT'

发现FAILED_LOGIN_ATTEMPTS字段是10,也就是失败10次后就锁定。

相关字段解释:

(1) 对数据库资源做限制 sessions_per_user  每个用户名所允许的并行会话数 cpu_per_session   一个会话一共可以使用的cpu时间,单位是百分之一秒 ccpu_per_call     一次sql调用(解析、执行和获取)允许使用的cpu时间 connect_time     限制会话连接时间,单位是分钟 idle_time       允许空闲会话的时间,单位是分钟 logical_reads_per_session  限制会话对数据块的读取,单位是块 logical_reads_per_call    限制sql调用对数据块的读取,单位是块 composite_limit       指定一个会话的总的资源消耗,以service units单位表示 private_sga          限制会话在sga中shared pool中私有空间的分配

(2) 对密码做限制 failed_login_attempts    帐户被锁定之前可以错误尝试的次数 password_life_time      密码可以被使用的天数,单位是天,默认值180天 password_reuse_time     密码可重用的间隔时间(结合password_reuse_max) password_reuse_max     密码的最大改变次数(结合password_reuse_time) password_lock_time     超过错误尝试次数后,用户被锁定的天数,默认1天 password_grace_time     当密码过期之后还有多少天可以使用原密码 password_verify_function   该字段允许将复杂的PL/SQL密码验证脚本做为参数传递到create

然后按网上大部分的说法,将这个限制去掉或加大失败次数即可。

alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED;

然后重新将用户解锁,一般这样下来就可以了。但我发现并没有成功。

原因就出在第三步,当前用户并没有采用默认的profile配置,而网上提供的方法都是默认default 的

查看当前用户采用的profile配置名,发现并不是default

 select profile from dba_users where username='xx'

所以要重新修改下

alter profile xxprofilename limit FAILED_LOGIN_ATTEMPTS UNLIMITED;

再去解锁用户,就OK了。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164705.html原文链接:https://javaforall.cn