天天看点

修改oracle中的用户名和密码

修改底层表 user$ 更换用户名

1、sqlplus /nolog

2、sql> conn sys/zzh_2046@rlzy as sysdba 连接到数据库。通常可以用sys用户登陆。

3、sql> select * from user$; 找到 name为insur_recover需要修改的用户的user#。

sql> select user#,name,password  from user$ where name='insur_recover';

     user# name                                type# password

---------- ------------------------------ ---------- ------------------------------

       124 insur_recover                           1 89e995f8b999af00

4、update user$ set name='insur_redo' where user#=124;

   已更新 1 行。

5、sql> commit;提交完成。

6、sql> alter system checkpoint;

   系统已更改。

7、sql> alter user insur_redo identified by "redo";

   此时会提示新用户不存在。

sql> alter user insur_redo identified by "redo"

*error 位于第 1 行:ora-01918: 用户'insur_redo'不存在

8、sql> alter system flush shared_pool;

9、sql> alter user insur_redo identified by "redo";

    用户已更改。

10、测试连接

    sql> conn insur_redo/redo@rlzy;

    已连接。

11、sql> select * from tab;

    查看新用户下是否有原用户的对象,包括表等。

12、sql> conn /    as sysdba已连接。

13、sql> show user     --查看当前连接用户

    为"sys"

14、sql> shutdown immediate   --关闭数据库

    数据库已经关闭。已经卸载数据库。oracle 例程已经关闭。

15、sql> startup              --启动数据库

        oracle 例程已经启动。......数据库装载完毕。数据库已经打开。

16、可以看出没有再恢复为test

sql> select user#,name,password  from user$ where user#=124;

在操作过程中有可能会导致用户被锁

--查看被锁的用户

        select lock_date,username from dba_users where username='username';

        lock_date为空说明没有锁定,非空为锁定。

-解锁方法

        alter user user_name account unlock;