Oracle 命令修改用户名
oracle 如何修改用户名在实际工作中,有时候需要修改用户名,而通常的做法是exp imp这样的方式,而如果数据量大的话exp imp的方式会很浪费时间,所以下面写上如何通过修改ORACLE基表的方式来修改用户名,按下面的步骤执行:
--直接修改底层表 USER$ 更换用户名
1、windows 平台下运行 cmd
2、sqlplus /nolog
3、SQL> connsys/lmis@lmisdx_localas sysdba 连接到数据库。通常可以用sys用户登陆。
4、SQL> select * from user$; 找到 name为需要修改的用户的user#。
5、SQL> UPDATE USER$ SET NAME='新用户名' WHERE USER#=38;
已更新 1 行。
6、SQL> COMMIT;提交完成。
7、SQL> ALTER SYSTEM CHECKPOINT;
系统已更改。
8、SQL> ALTER USER 新用户名 IDENTIFIED BY 新密码;
此时会提示新用户不存在。
SQL> ALTER USER 新用户名 IDENTIFIED BY 新密码
*ERROR 位于第 1 行:ORA-01918: 用户'新用户'不存在
9、SQL> ALTER SYSTEM FLUSH SHARED_POOL;
系统已更改。
10、SQL> ALTER USER 新用户 IDENTIFIED BY 新密码;
用户已更改。
11、测试连接
SQL> CONN 新用户/新密码@lmisdx_local;
已连接。
12、SQL> SELECT * FROM TAB;
查看新用户下是否有原用户的对象,包括表等。
13、SQL> CONN / AS SYSDBA已连接。
14、SQL> SHOW USER --查看当前连接用户
为"SYS"
15、SQL> SHUTDOWN IMMEDIATE --关闭数据库
数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。
16、SQL> STARTUP --启动数据库
ORACLE 例程已经启动。......数据库装载完毕。数据库已经打开。
17、可以看出没有再恢复为TEST
SQL> SELECT USER#,NAME,PASSWORD FROM USER$ WHERE USER#=38;
18、查看数据对象
SQL> SELECT * FROM TAB;
19、SQL >connsys/lmis@lmisdx_localas sysdba
已连接。
SQL> SHOW USERUSE
为"SYS"
--DROP USER 也没有问题
SQL> DROP USER TEST1 CASCADE; --删除以前的用户
用户已丢弃