[terry笔记]更改oracle用户名

更改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
原文地址:https://www.cnblogs.com/kkterry/p/3334477.html