Oracle 如何修改用户名
2011-01-07 21:58
239 查看
在实际工作中,有时候需要修改用户名,而通常的做法是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 TABLE
SQL> CONN / AS SYSDBA
已连接。
SQL> SHOW USER
USER 为"SYS"
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP
ORACLE 例程已经启动。
......
数据库装载完毕。
数据库已经打开。
可以看出没有再恢复为TEST
SQL> SELECT USER#,NAME,PASSWORD FROM USER$ WHERE USER#=91;
USER# NAME PASSWORD
---------- ------------------------------ ----------------
91 TT 294CE6E7131DD890
SQL> CONN TT/TT
已连接。
查看数据对象
SQL> SELECT * FROM TAB;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST_TT TABLE
SQL> 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 TABLE
TEST_TT TABLE
SQL> CONN / AS SYSDBA
已连接。
SQL> SHOW USER
USER 为"SYS"
--DROP USER 也没有问题
SQL> DROP USER TT CASCADE;
用户已丢弃
SQL> DROP USER TEST1 CASCADE;
用户已丢弃
-- 直接修改底层表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 TABLE
SQL> CONN / AS SYSDBA
已连接。
SQL> SHOW USER
USER 为"SYS"
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP
ORACLE 例程已经启动。
......
数据库装载完毕。
数据库已经打开。
可以看出没有再恢复为TEST
SQL> SELECT USER#,NAME,PASSWORD FROM USER$ WHERE USER#=91;
USER# NAME PASSWORD
---------- ------------------------------ ----------------
91 TT 294CE6E7131DD890
SQL> CONN TT/TT
已连接。
查看数据对象
SQL> SELECT * FROM TAB;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST_TT TABLE
SQL> 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 TABLE
TEST_TT TABLE
SQL> CONN / AS SYSDBA
已连接。
SQL> SHOW USER
USER 为"SYS"
--DROP USER 也没有问题
SQL> DROP USER TT CASCADE;
用户已丢弃
SQL> DROP USER TEST1 CASCADE;
用户已丢弃
相关文章推荐
- oracle中如何修改用户名和密码
- 如何修改oracle 11G的字符集、用户名区分大小写、密码过期问题?
- oracle中如何修改用户名和密码
- 如何修改oracle用户名和密码
- 如何用命令修改oracle的用户的用户名
- oracle中如何修改用户名和密码
- 点击登录Oracle企业管理器,提示错误,您的用户名和/或口令无效和如何修改oracle里面的sys和system的密码
- oracle中如何修改用户名和密码,用户解锁
- ORACLE 11G R2 修改"用户名"
- Oracle 修改用户名/密码
- oracle默认初始化用户名密码和密码修改
- Oracle 10g如何查看修改连接数,进程数及用户数,三者之间有什么关系?
- Oracle EBS里如何用脚本修改用户密码
- 如何修改Oracle用户密码的诀窍(转)
- Oracle修改用户名
- oracle连接数如何修改
- 如何实现Oracle修改用户权限
- Oracle 如何修改列的数据类型
- oracle修改用户名
- Oracle 如何修改列的数据类型