
首先需要用sysdba用户连接数据库:sqlplus sys/password@1021220:1521/orcl as sysdba
登陆之后解锁system用户:alter user system account unlock
今天访问应用的时候,发现账号被锁定,登录oracle后,发现很多用户都被锁定了。看下提示信息,原来是密码过期了导致账号被锁定。这里记录下这几个 *** 作的常用命令,以方便以后自己的使用。
1查看用户的proifle是哪个,一般是default
SELECT username,PROFILE FROM dba_users;
2查看对应的概要文件(如default)的密码有效期设置
SELECT FROM dba_profiles s WHERE sprofile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3将概要文件(如default)的密码有效期由默认的180天修改成“无限制”(修改之后不需要重启动数据库,会立即生效)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
4对已经锁定和过期的账号进行解锁
(1)alter user 用户名 identified by <原来的密码> account unlock; ----不用换新密码,用户名和密码也不用加引号,这个命令会解锁账号,同时取消密码过期。
(2)alter user 用户名 account unlock; ----这个只会解锁账号,而不会取消密码过期,所以建议使用上面的口令
FAILED_LOGIN_ATTEMPTS参数默认是10,即:用户连续输入10次错误密码,用户会被锁住;
可以使用其他拥有DBA权限的用户进行解锁;
alter user username account unlock;
如果是数据库内部出现死锁或阻塞会话,可以先查出阻塞的会话,
select from dba_waiters;
在杀掉阻塞的会话
alter system kill session 'sid,serial#';
测试环境,可以直接重启数据库!
解锁scott用户:
alter user scott account unlock;
修改密码并解锁:
alter user scott account unlock identified by xxxxxx;
你先查一下你的数据表示不是锁表了。
select sesssid,
sessserial#,
looracle_username,
loos_user_name,
aoobject_name,
lolocked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where aoobject_id = loobject_id and losession_id = sesssid
通过以上sql就可以知道哪个进程、序列,oracle用户名、 *** 作系统用户名、表名、锁表模式几个字段
下面一步就是将改锁表的进程和序列杀掉了,执行下面的语句即可。
alter system kill session '1020,38953' --(1020,就是执行第一步语句得到的sid字段值,38953就是serial#字段值)
详细的请参照:网页链接
一般安装oracle默认的是sys,system,scott3个用户。scott用户需要解锁才能使用。
如果没解锁以后你用sys,system用户以sysdba的身份登陆进去输入以下指令也可以解锁:
SQL> alter user scott account unlock;
用户已更改。
这样就完成解锁的 *** 作。接下来,你还可以重新给scott这个用户设定密码
修改scott的登录密码
SQL> alter user scott identified by 12345;
用户已更改。
ok了,你再拿scott 和 12345来登录就可以了!
SQL> conn scott/12345
以上就是关于我的服务器的oracle 数据库用户system用户被锁了,服务器iP=10.212.2.0,实例名为orcl,如何解锁全部的内容,包括:我的服务器的oracle 数据库用户system用户被锁了,服务器iP=10.212.2.0,实例名为orcl,如何解锁、Oracle账号被锁定如何解锁、oracle数据库中用户名被锁住是什么原因等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)