http://blog.csdn.net/weiwenhp/article/details/8094575

 

很多人都以为oracle可以很容易的改密码,但不能改用户名字.实际上名字也可以改的.只不过改起来有点麻烦.

改用户名的用处

至于改名字的用处嘛,在这样一种情景下非常有用.假如某个公司给每个员工一个账户,用户名就是你的英文名.当某个员工arwen要离职了,那就要删除掉用户arwen了.但是我们知道oracle中用户与此用户下面创建的对象是完全绑定到一起的,而不像sql server中表等对象是可以和用户完全分开.这样的话你一删掉用户arwen那下面的数据全没了.假如我们需要那些数据咋整呢,最容易想到的是把所有数据先导出,然后再导入到某个用户下面.但这样比较麻烦.所以如果能改名字就更好点了.

怎么改用户名

接着用上面的例子.假如又来了新员工,weiwenhp.他是接arwen的班的.所以他很需要用户arwen下面的数据.此时就把用户arwen改成用户weiwenhp.我们登陆数据库时,数据库系统会判断我们的用户名和密码正确不,那我们自然想到这些信息肯定保存在数据库里面哪个地方,肯定会有一个啥保存用户信息的表.没错,所以用户信息保存在表user$中.

select * from user$

用这个sql一查你会看到所有用户名和密码,还有其他一些信息.不过用户名都是加密的.所以即使是管理员也看不到任何用户的密码,只能改用户的密码.

那肯定想,用户名和密码在这那我在这里把名字改下就行了啊.实际上改名就真这么做.

select user#, name from user$ where name = 'ARWEN';     --先瞧下arwen的信息,其中user#就是一个序列号,相当于身份证号吧,假如这里是250

update user$ set name = 'WEIWENHP' where user# = 250;     --于是用户名就改好了啊.当然是update语句就记得再commit提交下啊.

还要做的工作

当上面那样改好名字后你就兴高采烈的想去登陆下试试,瞧瞧改了用户名后真能登陆不.结果一登发现登不了.而用之前的帐户arwen还能登.这时你就傻眼了.这是咋回事啊?

我人知道要是改了密码的话马上就生效能用的啊,改名字了咋就不成了呢.

我们知道数据库中很重要的一点是要保证数据一致性,某个地方的数据更改了,相关的地方也得跟着改才好.那这里肯定是因为登陆时读取的用户信息还没有更新.有数据不一致性的情况出现.你可能会想到有时我们用alter更改一些参数信息得重启数据库才能生效.于是你就想不会我改了名还得重启数据库.这也太恐怖了吧.

实际上不用重启数据库拉,你这样强制更新下.

alter system checkpoint;

alter system flush shared_pool;

你再次登陆就发现可以登陆了啊.而之前的arwen用户就登不了啊.

不过像上面这样改用户名不太方便,估计很少有DBA去这样做吧.因为出现要改用户名的场景确实不多.而且就算要改先导出再导入也能做到.

想干坏事明文显示密码

刚上面你发现用户名和密码都在一个表中,而密码都是加密后的密文,你于是就想我能不能想办法给整成明文.这样就可以瞧见别人密码了,方便干啥坏事啊.于是你就想用改名字相同的做法

update user$ set password = 'abc' where user# = 250;

alter system checkpoin;

alter system flush shared_pool;

select * from user$ where name = 'arwen' -- 此时你发现密码竟然真变成明文了,abc.于是你可乐坏了

于是你迫不及待的想登陆下看真能用不.

结果让你很是沮丧,竟然登不了.而且用户arwen原来的密码也报废了.于是只能乖乖的用alter再来改下.

alter user arwen identified by abc;           --这样改下就能登了.

改成明文后不能登,但改的时候又没报错.不知道oracle背后是咋整的.我觉得嘛按道理应该改表user$中的密码时就应该提示说不能改才比较好呢.

哎不过反正也没哪个管理员真会闲得蛋痛去干把密码明文显示的无聊事吧.所以咋整也无所谓了.

我用的是oracle 11gr1 .不知道早期啥oracle的版本能真的把密码改成明文而又能登陆不.

Oracle怎么更改用户名的更多相关文章

  1. Oracle怎么更改用户名和密码

    通过修改ORACLE基表的方式来修改用户名直接修改底层表USER$更改用户名(该方法在Oracle9i,Oracle10g中测试通过)SQL> UPDATE USER$ SET NAME='TT ...

  2. Oracle 更改用户名

    直接更改系统user$表中的用户名. 查询要更改的用户名 SQL> select user#,name,password from user$ where name ='TICKETS'; US ...

  3. oracle更改用户名

    例如,用户名test1改为test2,在plsql界面中不支持直接更改,只能通过sql更改 1.查询系统user$中的user#值 select user#,name from user$ where ...

  4. SVN更改用户名和密码

    关于SVN更换用户名和密码的问题,SVN是一个脚本的扩展软件,但是通过客户端更改用户名和密码的时候比较弱智,必须要经过一些操作之后才能出现更改用户名和密码的对话框. 主要的步骤就是“点击鼠标右键选择T ...

  5. MySQL5.7更改用户名密码

    更改用户名密码,官方推荐使用alter ALTER USER test@'%' IDENTIFIED BY '; 还有一种 update mysql.user set authentication_s ...

  6. 忘记oracle的sys用户密码怎么修改以及Oracle 11g 默认用户名和密码

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  7. RACLE 错误 12899 处理, oracle 11g 更改字符集

    工作需要,安装装了oracle 11g,在导入其他机器上的备份数据的时间,发生一个错误: IMP-00019: 由于 ORACLE 错误 12899 而拒绝行IMP-00003: 遇到 ORACLE ...

  8. linux更改用户名,域名(转载)

    转自:http://huangro.iteye.com/blog/365975 1. 我们在root权限下,使用命令: usermod -l new_user_name old_user_name 即 ...

  9. 忘记oracle的sys用户密码如何修改以及Oracle 11g 默认用户名和密码

    忘记除SYS.SYSTEM用户之外的用户的登录密码 CONN SYS/PASS_WORD AS SYSDBA; --用SYS (或SYSTEM)用户登录 ALTER USER user_name ID ...

随机推荐

  1. webservice 的权限验证

    1. http://blog.csdn.net/jaune161/article/details/25602655 2. http://wcp88888888.iteye.com/blog/13993 ...

  2. Hibernate 注解 没有加@Column一样会在数据库创建这些字段

    Hibernate 注解 没有加@Column一样会在数据库创建这些字段 如下一个注解类: package com.hyy.hibernate.one_to_many.domain; import j ...

  3. AD10 gerber生成,及导入cam350 多图详细步骤

    Protel99转Gerber文件导入到CAM350中看为什么钻孔层偏位 这是因为你导入CAM350 时的格式没有设置正确.你用PROTEL 导出钻孔 TXT 时记住是什么格式,例如: 2:3,2:4 ...

  4. jQueryEasyUI中DataGrid的height,width,fit,fitColumns属性

    height: 600, //不指定则默认垂直包裹,指定了则固定 width:1200,//不指定则水平100%平铺,指定了则固定 fit:false,//true:高度填充父窗体,忽略height属 ...

  5. BZOJ2287: 【POJ Challenge】消失之物

    2287: [POJ Challenge]消失之物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 254  Solved: 140[Submit][S ...

  6. asp.net EasyUI DataGrid 实现增删改查

    转自:http://www.cnblogs.com/create/p/3410314.html 前台代码: <!DOCTYPE html> <html xmlns="htt ...

  7. ashx文件的使用

    转自:http://www.cnblogs.com/Tally/archive/2013/02/19/2916499.html ashx是什么文件 .ashx 文件用于写web handler的..a ...

  8. HDOJ --- 2084数塔

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  9. Climbing Worm

    Climbing Worm Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  10. web测试方面的知识

    web测试 软件测试体系架构设计 一.体系架构 1.C/S:客户端+服务器端,如QQ.单机版记事本.office等,所用语言:VB.C++.C.C#.JAVA.PB.D…等数组语言,C和S都是自己测, ...