Oracle 12c/19c 安装后 HR 和 SCOTT 用户默认是锁住的
装完 oracle 数据库(比如用 oracle database 12c 或 19c 的桌面版/企业版),
和
这两个示例用户通常处于
状态,连不上,也查不到表。这不是安装失败,而是 oracle 默认安全策略:示例用户不自动启用。
解锁前得先确认实例是否跑起来、监听是否就绪,否则会误判为“解锁没用”。常见错误现象包括:
(密码错)、
(明确提示锁了)。
必须用具有
权限的用户登录,比如
或
用户密码默认就是
,
默认是
;但首次解锁时建议显式改密,避免后续被审计工具报弱口令
12c 及以后版本中,
模式默认不带数据,需手动运行脚本导入;
更老,有些精简版安装甚至不附带其 SQL 脚本
用 sqlplus 解锁 HR 和 SCOTT 并重置密码
别打开 OEM 或 SQL Developer 点来点去——最稳的方式是命令行直连
,绕过图形层干扰。注意:必须连到
,否则权限不够执行解锁。
操作步骤:
终端里执行:
依次执行:
再执行:
如果提示
,说明该用户根本没创建,跳到下个副标题处理
为什么不能只用
?因为 Oracle 12c+ 对已锁定账户,仅
不重置认证状态,仍可能报
。必须搭配
显式设密,哪怕设成原密码。
HR 用户不存在?运行 catqm.sql 和 hr_main.sql 补全示例方案
某些安装(尤其是自定义组件选择时取消了“Sample Schemas”),
用户压根不会出现在
里。这时不是解锁问题,是根本没建模。需要手动运行 Oracle 自带的建模脚本。
关键路径和依赖:
脚本位置通常在:
(Linux/macOS)或
(Windows)
必须先确保
能访问到
(它在
),否则报
运行前确认当前连接用户是
,且密码正确;用
会因角色权限问题卡在
执行命令:
(四个参数分别是:密码、默认表空间、临时表空间、用户表空间)
这个过程可能耗时 30–90 秒,期间没输出是正常的。结束后检查:
—— 应显示
。
SCOTT 用户脚本缺失?用 ubd.sql 或手建 emp/dept 表
在 19c 后的安装介质里经常被移除,
目录可能为空。官方不再维护它,但很多教学场景仍依赖
/
表结构。
两个务实选择:
从 Oracle GitHub 公共仓库找存档版
(搜 “oracle sample schemas github”),下载后用
运行(前提是你已解锁并设好密码)
更轻量:直接粘贴经典建表语句(不用完整 schema)。例如:
,再
几条测试数据。够本地调试用,不占资源
千万别用网上流传的“一键导入所有示例”的 shell 脚本——它们常硬编码旧路径,且可能静默跳过错误,导致部分表没建成功却以为万事大吉
容易被忽略的一点:
的
表里
字段是自关联外键,如果建表时没加
定义,后续
查询会慢,且
的
看不出缺失约束。
hrscottlockedORA-01017: invalid username/passwordORA-28000: the account is lockedDBAsyssystemHRhrSCOTTtigerHRSCOTTsqlplusAS SYSDBAsqlplus / as sysdbaALTER USER hr ACCOUNT UNLOCK IDENTIFIED BY hr;ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;user does not existUNLOCKACCOUNT UNLOCKORA-01045IDENTIFIED BYHRdba_users$ORACLE_HOME/demo/schema/human_resources/%ORACLE_HOME%\demo\schema\human_resources\hr_main.sqlcatqm.sql$ORACLE_HOME/rdbms/admin/SP2-0310: unable to open filesystemsysCREATE ROLE@?/demo/schema/human_resources/hr_main.sql hr hr TEMP usersSELECT username, account_status FROM dba_users WHERE username IN ('HR', 'SCOTT');OPENSCOTT$ORACLE_HOME/demo/schema/scott/empdeptscott.sqlsqlplus scott/tiger @scott.sqlCREATE TABLE emp (empno NUMBER PRIMARY KEY, ename VARCHAR2(10));INSERTSCOTTempmgrCONSTRAINTJOINSQL*PlusDESC emp