ORACLE 更改用户名_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1973 | 回复: 1   主题: ORACLE 更改用户名        下一篇 
filogra
注册用户
等级:少校
经验:1408
发帖:13
精华:0
注册:2015-6-2
状态:离线
发送短消息息给filogra 加好友    发送短消息息给filogra 发消息
发表于: IP:您无权察看 2015-6-2 10:22:55 | [全部帖] [楼主帖] 楼主

一般修改用户名大多使用导出用户a再导入用户b来实现用户名的换名。假如在测试库上你可以用下面的方法来简单实现,这样就不用导出了。

注释:重要的生产库不建议这样做,可能会引发其它的问题

UPDATE USER$ SET NAME='A2B' WHERE NAME='HH';
--注意:要改成的用户名必需为大写,因为系统表里用户名都是大写的,否则下面的alter user a2b identified by a;操作会报错,说找不到用户。


ALTER SYSTEM CHECKPOINT;--强制写入数据文件


ALTER SYSTEM FLUSH SHARED_POOL;--清除缓存数据字典信息
alter user a2b identified by a;
SQL> conn hh/a
Connected.
SQL> SELECT COUNT(*) FROM USER_OBJECTS;
COUNT(*)
----------
952
SQL> conn / as sysdba
Connected.
SQL> show user
USER is "SYS"
SQL> UPDATE USER$ SET NAME='A2B' WHERE NAME='HH';
1 row updated.
SQL> commit;
Commit complete.
SQL> ALTER SYSTEM CHECKPOINT;
System altered.
SQL> ALTER SYSTEM FLUSH SHARED_POOL;
System altered.
SQL> alter user a2b identified by a;
User altered.
SQL> conn a2b/a
Connected.
SQL> SELECT COUNT(*) FROM USER_OBJECTS;
COUNT(*)
----------
952




赞(0)    操作        顶端 
lei.wang
注册用户
等级:上尉
经验:767
发帖:21
精华:0
注册:1970-1-1
状态:离线
发送短消息息给lei.wang 加好友    发送短消息息给lei.wang 发消息
发表于: IP:您无权察看 2015-6-2 10:44:40 | [全部帖] [楼主帖] 2  楼

改系统表太粗暴了吧,直接把系统表里的用户名改了,那用户拥有的相关的权限priviledge,用户相关的概要文件profile怎么处理呢



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论