这篇文章给大家分享的是有关oracle中出现ORA-28000错误怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
这个毛病特别稀奇,用户好端端的就登陆不上!根据提示 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错误怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!