如何重建Oracle 11g中的scott用户

来源:编程学习作者:柬埔寨程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《如何重建Oracle 11g中的scott用户》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何重建Oracle 11g中的scott用户》有用,将其分享出去将是对创作者最好的鼓励。

在Oracle 11g数据库的使用场景中,scott用户是官方提供的示例用户,包含emp、dept等经典测试表,很多初学者和测试人员都会用到。如果因为误操作删除了scott用户,或者该用户状态异常无法登录,就需要手动重建该用户。

如何重建Oracle 11g中的scott用户

重建前的准备工作

重建scott用户前需要先确认当前登录的数据库用户拥有足够的管理权限,通常需要使用sys或者system用户登录数据库,这两个用户是Oracle的默认管理员用户,拥有创建用户、分配权限的权限。

同时需要确认Oracle的安装目录下是否存在scott用户的建表脚本,默认路径为$ORACLE_HOME/rdbms/admin/utlsampl.sql,不同操作系统的路径格式略有差异,Windows系统下路径类似D:\app\用户名\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlsampl.sql

具体操作步骤

1. 登录数据库

使用sys用户以sysdba身份登录数据库,执行以下命令:

-- 登录Oracle数据库,sys用户需要指定sysdba角色
sqlplus sys/密码 as sysdba

2. 执行重建脚本

登录成功后,直接执行utlsampl.sql脚本,该脚本会自动完成scott用户的创建、表的创建以及初始数据的插入:

-- 执行scott用户重建脚本,注意替换为实际的脚本路径
@D:\app\用户名\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlsampl.sql

如果执行过程中没有报错,说明脚本已经成功运行,此时scott用户已经被创建,默认密码为tiger。

3. 验证用户状态

可以查询数据库的用户表,确认scott用户是否存在,以及状态是否正常:

-- 查询scott用户的状态
select username, account_status from dba_users where username = 'SCOTT';

如果查询结果中account_status显示为OPEN,说明用户状态正常,可以正常登录。

4. 手动重建(脚本执行失败场景)

如果自动脚本执行失败,也可以手动执行以下步骤完成重建:

-- 1. 创建scott用户,设置密码为tiger
create user scott identified by tiger;

-- 2. 给用户分配基础权限,包括创建会话、创建表、使用表空间的权限
grant connect, resource to scott;

-- 3. 切换到scott用户
conn scott/tiger;

-- 4. 创建dept表
create table dept(
    deptno number(2) primary key,
    dname varchar2(14),
    loc varchar2(13)
);

-- 5. 创建emp表
create table emp(
    empno number(4) primary key,
    ename varchar2(10),
    job varchar2(9),
    mgr number(4),
    hiredate date,
    sal number(7,2),
    comm number(7,2),
    deptno number(2)
);

-- 6. 插入初始测试数据
insert into dept values(10, 'ACCOUNTING', 'NEW YORK');
insert into dept values(20, 'RESEARCH', 'DALLAS');
insert into dept values(30, 'SALES', 'CHICAGO');
insert into dept values(40, 'OPERATIONS', 'BOSTON');

insert into emp values(7369, 'SMITH', 'CLERK', 7902, to_date('1980-12-17', 'yyyy-mm-dd'), 800, null, 20);
insert into emp values(7499, 'ALLEN', 'SALESMAN', 7698, to_date('1981-02-20', 'yyyy-mm-dd'), 1600, 300, 30);
insert into emp values(7521, 'WARD', 'SALESMAN', 7698, to_date('1981-02-22', 'yyyy-mm-dd'), 1250, 500, 30);
insert into emp values(7566, 'JONES', 'MANAGER', 7839, to_date('1981-04-02', 'yyyy-mm-dd'), 2975, null, 20);
insert into emp values(7654, 'MARTIN', 'SALESMAN', 7698, to_date('1981-09-28', 'yyyy-mm-dd'), 1250, 1400, 30);
insert into emp values(7698, 'BLAKE', 'MANAGER', 7839, to_date('1981-05-01', 'yyyy-mm-dd'), 2850, null, 30);
insert into emp values(7782, 'CLARK', 'MANAGER', 7839, to_date('1981-06-09', 'yyyy-mm-dd'), 2450, null, 10);
insert into emp values(7788, 'SCOTT', 'ANALYST', 7566, to_date('1987-04-19', 'yyyy-mm-dd'), 3000, null, 20);
insert into emp values(7839, 'KING', 'PRESIDENT', null, to_date('1981-11-17', 'yyyy-mm-dd'), 5000, null, 10);
insert into emp values(7844, 'TURNER', 'SALESMAN', 7698, to_date('1981-09-08', 'yyyy-mm-dd'), 1500, 0, 30);
insert into emp values(7876, 'ADAMS', 'CLERK', 7788, to_date('1987-05-23', 'yyyy-mm-dd'), 1100, null, 20);
insert into emp values(7900, 'JAMES', 'CLERK', 7698, to_date('1981-12-03', 'yyyy-mm-dd'), 950, null, 30);
insert into emp values(7902, 'FORD', 'ANALYST', 7566, to_date('1981-12-03', 'yyyy-mm-dd'), 3000, null, 20);
insert into emp values(7934, 'MILLER', 'CLERK', 7782, to_date('1982-01-23', 'yyyy-mm-dd'), 1300, null, 10);

-- 提交事务
commit;

常见问题处理

如果重建后登录scott用户提示密码错误,可以使用sys用户重置密码:

-- 重置scott用户密码为tiger
alter user scott identified by tiger;

如果用户状态显示为LOCKED,可以执行以下命令解锁:

-- 解锁scott用户
alter user scott account unlock;

完成以上操作后,就可以正常使用scott用户进行数据库相关的测试和学习了。

Oracle_11gscott用户用户重建数据库用户修改时间:2026-06-07 00:30:32

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。