Oracle 忘记密码的解决办法(conn / as sysdba)
1 概述
又想不起数据库密码了 →_→
-- 查询 数据库中所有的用户: select * from dba_users t order by t.expiry_date desc; -- 若 非 sys、system 用户,则以 system 用户登录,执行下列修改密码命令 -- 若 是 system 用户,继续往下看 alter user <username> identified by <password>;
默认用户名/密码:
2 修改密码
步骤:
1. 打开运行窗口: win + r, 输入 cmd 2. 输入: sqlplus /nolog (无日志登录,避免密码泄露,请注意 /nolog 之间不能留空格) 3. 输入: conn / as sysdba (无用户、密码,最高权限登录. 若报错,见下列解决办法) 4. 修改密码: alter user scott identified by scott; -- 修改 账户 scott 的密码为 scott -- 注意 修改你自己的哦
注意项:
-
上述操作能够更改 任何 登录用户的密码,包括 sys 和 system 一般来说,建议使用 sys 或 system 登录,来修改其它登录用户的密码
3 可能遇到的问题
3.1 conn / as sysdba 权限不足
原理解析:
Oracle 数据库有三种登录验证方式
(1) 操作系统身份认证, 如: conn / as sysdba
(2) 数据库认证, 如: username/password@db
(3) 密码文件认证, 如: $ORACLE_HOME/network/admin/sqlnet.ora
-- 比较麻烦,了解即可
原理(操作系统身份认证):
(1) 当电脑开机时登录的用户,如 "Administrator",
若它在你电脑的 "ora_dba" 组中,可以在 "我的电脑" 点击右键,
找到 "管理",选择 "本地用户和组", 发现有一个组叫 "ora_dba",
双击它,看到成员列表中有 "Administrator"(也就是可以用 conn / as sysdba),
(2) Oracle 会进行操作系统验证,发现你当前登录的用户就属于 "ora_dba" 组,因此才登录成功,
(3) 你也可以吧 "ora_dba" 组中的 "Administrator" 用户删除,
再执行命令 conn / as sysdba, 就发现进不去了
解决办法:
-
我的电脑 -> 管理 -> 本地用户和组:查看当前用户是否在 ora_dba 组 中
