Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 中如何更改用户名

实际工作中,有时候需要修改用户名,而通常的做法是exp imp这样的方式,而如果数据量大的话exp imp的方式会很浪费时间,所以下面写上如何通过修改Oracle基表的方式来修改用户名。-- 直接修改底层表USER$更改用户名(该方法在Oracle9i中测试通过)SQL> UPDATE USER$ SET NAME="TT" WHERE USER#=91;已更新 1 行。SQL> COMMIT;提交完成。SQL> ALTER SYSTEM CHECKPOINT;系统已更改。SQL> ALTER USER TT IDENTIFIED BY VALUES "294CE6E7131DD890";ALTER USER TT IDENTIFIED BY VALUES "294CE6E7131DD890"*ERROR 位于第 1 行:ORA-01918: 用户"TT"不存在 强制 Oracle 读取实际数据,而不是读取缓存SQL> ALTER SYSTEM FLUSH SHARED_POOL;系统已更改。SQL> ALTER USER TT IDENTIFIED BY VALUES "294CE6E7131DD890";用户已更改。 测试连接SQL> CONN TT/TT已连接。SQL> SELECT * FROM TAB;TNAME TABTYPE CLUSTERID------------------------------ ------- ----------TEST_TT TABLESQL> CONN / AS SYSDBA已连接。SQL> SHOW USERUSER 为"SYS"SQL> SHUTDOWN IMMEDIATE数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> STARTUPORACLE 例程已经启动。......数据库装载完毕。数据库已经打开。 可以看出没有再恢复为TESTSQL> SELECT USER#,NAME,PASSWORD FROM USER$ WHERE USER#=91;USER# NAME PASSWORD---------- ------------------------------ ----------------91 TT 294CE6E7131DD890SQL> CONN TT/TT已连接。 查看数据对象SQL> SELECT * FROM TAB;TNAME TABTYPE CLUSTERID------------------------------ ------- ----------TEST_TT TABLESQL> SELECT * FROM TEST_TT;A-A 对象权限依然有效SQL> SELECT * FROM TEST1.TEST1_TT;A-A 系统权限依然有效SQL> CREATE TABLE KK AS SELECT * FROM TEST1.TEST1_TT;表已创建。SQL> SELECT * FROM TAB;TNAME TABTYPE CLUSTERID------------------------------ ------- ----------KK TABLETEST_TT TABLESQL> CONN / AS SYSDBA已连接。SQL> SHOW USERUSER 为"SYS"--DROP USER 也没有问题SQL> DROP USER TT CASCADE;用户已丢弃SQL> DROP USER TEST1 CASCADE;用户已丢弃Oracle客户端出现乱码的解决Linux下无法远程登入MySQL Server的解决相关资讯      Oracle技巧 
  • 通过进程id号知道一个Oracle会话所  (08/10/2008 07:12:58)
  • Oracle控制文件多元化处理  (06/22/2008 11:08:35)
  • 新手学堂 Linux下Oracle的自动启动  (03/31/2008 13:44:44)
  • Oracle PLS 调试的输出方法  (08/09/2008 07:51:09)
  • Linux平台下Oracle9i数据库正确显  (04/06/2008 10:11:35)
  • Oracle 9.2.0.1版函数编译一个小问  (03/24/2008 06:19:07)
本文评论 查看全部评论 (0)
表情: 姓名: 字数