共计 1729 个字符,预计需要花费 5 分钟才能阅读完成。
这篇文章给大家分享的是有关 oracle 中出现 ORA-28000 错误怎么办的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。
这个毛病特别稀奇,用户好端端的就登陆不上!根据提示 The account is locked 这账户被锁定,啥情况,我们登陆 sysdba 看一看
格式:
select account_status,lock_date,profile from dba_users where username= USERNAME
解析:
这句话查询字段 account_status(账户状态),lock_date(锁数据),profile 配置文件字段,然后 dba_users 查看所有用户状态的视图表,指定 username 你的账户名就可以看状态
查看这个状态的时候发现是 LOCKED(TIMED), 锁(时间)以前没见过这种状态,我就百度了一下,系统默认配置密码登录(错误登录)登录 10 次,所以就给个时间锁,知道了这些就好办了,我感觉输入 10 次才给锁太不安全了!
我想把他改成 3 次,我们首先要知道怎么查看这个系统默认设置,如下
格式:
select resource_name,resource_type,limit from dba_profiles where profile= DEFAULT
解释:
查询资源名字,类型,限制源表是 dba_profiles 视图(dba 配置文件),指定 default,这样就出来了!
格式:
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimit(无限次);– 本人为了安全设置了 3 次(非生产环境下)
解释:
翻译英语 改变配置文件默认的限制 登录失败尝试 为 3 次!很好理解无难度
这时候我们就可以给用户解锁了
格式:
alter user scott account unlock;– 改变用户 scott 账户解锁
这时候我们在 dba_users 视图查看发现已经解锁,登录成功,我还特意尝试了 3 次失败登录,报错 ORA-28000 看来还是很有效果!这时候问题解决希望对对大家有一些帮助
补录:
因为我其实查看了 show parameter resource,这时候我惊奇发现没有开启 resource limit,values — false, 这里资源显示没有开启,却 10 次生效,为什么??
查阅一些资料和了解,FAILED_LOGIN_ATTEMPTS 不为受 resource limit 的约束,修改用 alter profile 是用户口令管理,变量是资源管理,口令并不受 RESOURCE LIMIT 的限制,一些教材中把 profile 分为管理密码与资源两大类我也查实了。
引用网友的帖子感觉特别好 http://www.php.cn/mysql-tutorials-135104.html 比我讲解详细 思路明确 特别引用请大家参考 本人看了也有很大知识面提升
最后想查看 Oracle 中用户已经登录失败几次了?
格式:
select lcount from user$ where name= USERNAME – 就可以看到统计信息
格式:
SQL audit session whenever not successful;
审计已成功。
SQL set linesize 1000;
SQL col userhost for a20;
SQL col COMMENT$TEXT for a30;
SQL col SPARE1 for a20;
SQL col NTIMESTAMP# for a35
SQL select sessionid,userid,userhost,comment$text,spare1,to_char(ntimestamp#+1/3, yyyy-mm-dd hh34:mi:ss) from aud$ where returncode=1017 order by ntimestamp# desc;
user$ 与 aud$ 的信息非常有用!!
感谢各位的阅读!关于“oracle 中出现 ORA-28000 错误怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!