Oracle用户名更改操作四步走

Oracle用户名更改操作四步走


Oracle用户名修改是个不太常见的需求,但对很对入门者而言还是一个需要掌握的知识,这里通过四个简单步骤实现Oracle用户名的更改和替换。

AD:2013云计算架构师峰会课程资料下载

我们的Oracle管理工作中经常涉及到更改Oracle用户属性、密码之类的常用操作;但在某些应用场景下,会遇到Oracle用户名更改的需求,如何解决?下面通过四个步骤实现Oracle用户名的修改。

一、查询更改Oracle用户名

  
  
  
  
  1. SQL> select user#,name,password from userwhere name ='TICKETS';  
  2.  
  3.      USERNAME                           PASSWORD 
  4. ---------- ------------------------------ ------------------------------  
  5.         78 TICKETS                        21EDA78F89D6FACD 

二、更改用户名

  
  
  
  
  1. SQL> update  userset name='TICKETS_BAK' where user#=78;  
  2.  
  3. 1 row updated.  
  4.  
  5. SQL> commit;  
  6.  
  7. Commit complete. 

三、创建同样的Oracle用户名

  
  
  
  
  1. SQL> create user tickets identified by "123456" 
  2.   2  default tablespace yytickets  
  3.   3  temporary tablespace temp;  
  4. create user tickets identified by "123456" 
  5.             *  
  6. ERROR at line 1:  
  7. ORA-01920: user name 'TICKETS' conflicts with another user or role name 

这时系统会提示“用户名冲突”,运行下面的SQL语句

  
  
  
  
  1. SQL> alter system checkpoint;    ----强制写入数据文件  ,即让在 二、更改用户名 这一个步骤中修改的user$的结果(脏块)写入到数据文件上的user$
  2.  
  3. System altered.  
  4.  
  5. SQL> alter system flush shared_pool;  ----在下一步(四、创建相同的用户名)create user tickets时,oracle系统会自动修改系统表user$。而这里
    清除缓存中的数据字典信息(具体指user$),会使oracle系统在修改系统表user$强制读取在数据文件上的user$里的实际数据(即更改后的数据)  
  6.  
  7. System altered. 

四、创建相同的用户名

  
  
  
  
  1. SQL> create user tickets identified by "123456" 
  2.   2  default tablespace yytickets  
  3.   3  temporary tablespace temp;  
  4.  
  5. User created.  
  6.  
  7. SQL> grant connect,resource to tickets;  
  8.  
  9. Grant succeeded.  
  10.  
  11. SQL> commit;  
  12.  
  13. Commit complete. 

这样基本完成Oracle用户名的查找、更改、替换、复制等操作,需要注意的是用户名冲突的排查和解决,以防发生后患。

【编辑推荐】

  1. Oracle用户名重建索引方法探究
  2. 全面讲解Oracle查询用户表空间
  3. 浅析Oracle用户权限表的管理方法
  4. Oracle数据库备份与恢复特性浅谈
  5. 使用Oracle外部表的五个限制

你可能感兴趣的:(Oracle用户名更改操作四步走)