我们的Oracle管理工作中经常涉及到更改Oracle用户属性、密码之类的常用操作;但在某些应用场景下,会遇到Oracle用户名更改的需求,如何解决?下面通过四个步骤实现Oracle用户名的修改。
一、查询更改Oracle用户名
SQL> select user#,name,password from user$ where name ='TICKETS';
USER# NAME PASSWORD
---------- ------------------------------ ------------------------------
78 TICKETS 21EDA78F89D6FACD
- 1.
- 2.
- 3.
- 4.
- 5.
二、更改用户名
SQL> update user$ set name='TICKETS_BAK' where user#=78;
1 row updated.
SQL> commit;
Commit complete.
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
三、创建同样的Oracle用户名
SQL> create user tickets identified by "123456"
2 default tablespace yytickets
3 temporary tablespace temp;
create user tickets identified by "123456"
*
ERROR at line 1:
ORA-01920: user name 'TICKETS' conflicts with another user or role name
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
这时系统会提示“用户名冲突”,运行下面的SQL语句
SQL> alter system checkpoint; ----强制写入数据文件
System altered.
SQL> alter system flush shared_pool; ----清楚缓存数据字典信息,
----强制oracle读实际数据(即更改后的数据)
System altered.
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
四、创建相同的用户名
SQL> create user tickets identified by "123456"
2 default tablespace yytickets
3 temporary tablespace temp;
User created.
SQL> grant connect,resource to tickets;
Grant succeeded.
SQL> commit;
Commit complete.
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
这样基本完成Oracle用户名的查找、更改、替换、复制等操作,需要注意的是用户名冲突的排查和解决,以防发生后患。
【编辑推荐】