[terry笔记]更改oracle用户名

时间:2021-09-09 20:23:49

更改oracle的用户名

之前有个需求,整理一个schema的表、索引等规划到一个表空间里,利用expdp/impdp然后remap就完成了,但是整理好的用户名remap变更了,应用又不想修改其连接信息,我便进行了修改用户名,大致过程如下:
oracle无法通过常规方法修改,但可以修改user的基表user$进行用户名的修改

1.查询要更改的用户名

SQL> select user#,name,password from user$ where name like 'ECPPLAN%';

USER# NAME PASSWORD
---------- ------------------------------ ------------------------------
78 ECPPLAN_TEST 46EDD78F89E6F5CH
112 ECPPLAN_TEST1 4R5T6Y7U8I9O0P3ER

2.更改用户名

SQL> update user$ set name='ECPPLAN_TEST_BK' where user#=78;
1 row updated. SQL> update user$ set name='ECPPLAN_TEST' where user#=112;
1 row updated. SQL> commit;
Commit complete.

3.此时需要两个步骤,否则用户操作会报错:

SQL> alter system checkpoint;  /*强制写入数据文件*/
System altered. SQL> alter system flush shared_pool; /*清楚缓存数据字典信息,强制oracle读实际数据(即更改后的数据)*/
System altered.

4.再进行修改密码等操作即可登陆:

alter user ecpplan_test identified by "1";

conn ecpplan_test/1