Oracle怎么更改用户名

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

目录(?)[-]

  1. 改用户名的用处
  2. 怎么改用户名
  3. 还要做的工作
  4. 想干坏事明文显示密码

很多人都以为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的版本能真的把密码改成明文而又能登陆不.

时间: 2024-10-22 03:20:08

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

Oracle怎么更改用户名和密码

       通过修改ORACLE基表的方式来修改用户名 直接修改底层表USER$更改用户名(该方法在Oracle9i,Oracle10g中测试通过) SQL> UPDATE USER$ SET NAME='TT' WHERE USER#=91; 已更新 1 行. SQL> COMMIT; 提交完成. SQL> ALTER SYSTEM CHECKPOINT; 系统已更改. 修改密码:在以SYSDBA身份登陆时可以修改其他用户的密码,比如: SQL> alter user user

oracle更改用户名

项目中已经建好数据库表,可是突然需要更改用户名.通过plsql客户端界面形式是不可改的.所以直接更改系统user$表中的用户名. 查询要更改的用户名 SQL> select user#,name,password from user$ where name  ='TICKETS'; USER# NAME                           PASSWORD ----------  ------------------------------ -------------------

oracle 11g 更改日志组大小

1.创建新的日志组 1.alter database add logfile group 4 ('/u01/app/oracle/oradata/jian/redo04.log') size 1024k; 2.alter database add logfile group 5 ('/u01/app/oracle/oradata/jian/redo05.log') size 1024k; 2.切换当前日志到新的日志组 1.alter system switch logfile; 2.alter

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

工作需要,安装装了oracle 11g,在导入其他机器上的备份数据的时间,发生一个错误: IMP-00019: 由于 ORACLE 错误 12899 而拒绝行IMP-00003: 遇到 ORACLE 错误 12899ORA-12899: 列 "ZHENG"."D_DIC"."DICEXPLAIN" 的值太大 (实际值: 140, 最大值: 100) 这个数据表结构是直接注入的,根本不会这样子的啊.后来在网上查了才知道原来是字符集的问题: 在日志文

ubuntu更改用户名密码

转发自邬峙大神的博客:https://www.cnblogs.com/zeusmyth/p/6231350.html Ubuntu下更改用户名和主机名 很多时候,我们不满意安装时起的用户名与主机名,但是由于已经在这个用户上做了好多配置,所以只能在原来的基础上改用户名和主机名了. 但是改这些文件的时候,一定要小心,因为一不小心就会造成重启后无法登陆的情况.我自己也因为这个,浪费了好多时间: 这里写下我的经验,安全的修改用户名,避免出现修改后无法登陆的情况,希望对大家有所帮助,让各位少走弯路 1.

ORACLE 更改用户名

以前一直经常修改oracle的用户密码,但很少修改用户名的. 以前只能创建一个用户1,然后将用户2数据导入到用户1,然后经用户1删掉,这样非常麻烦而且耗时,今天就整理了下如何修改Oracle的用户名: 1.用sysdba角色账号进入,然后查询有哪些用户: SELECT * FROM user$ 2.找到需要修改的用户(user#字段是唯一标识) SELECT * FROM user$ WHERE user#=71 3.修改需要更改的用户名 UPDATE USER$ SET NAME='新的用户名

oracle修改初始化用户名密码

录入 sqlplus /nolog 无用户名登录 conn /as sysdba 连接到数据本地数据 alter user system identified by password; 修改System 密码 为password 或者打开sqlplus软件: 窗口用户名录入:/nolog D:\oracle\ora92\bin>sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 8月 16 11:32:22 2007 Co

oracle rac 更改归档目录

SQL>alter system set log_archive_dest='+LWK/archivelog'  scope=spfile sid='*'; 然后关闭两个实例,启动实例,更改数据库为归档模式: SQL>shutdown immediate;Database closed. Database dismounted. ORACLE instance shut down. SQL>startup mount; ORACLE instance started. Total Sys

查看Oracle数据库的用户名和密码

运行 cmd 按如下输入命令 sqlplus / as sysdba ---------以sys登陆          超级用户(sysdba) alter user 用户名 account unlock; --------- 解除锁定(必须带“;”号) alter user 用户名 identified 密码; -------------修改密码 然后用你改好的密码登陆就行 如果可以登录任意的一个用户可以通过一下方法来知道当前有哪些用户 select distinct owner from a