不知道密码情况下创建用户 (转)

很多数据库迁移要求使用exp,或者需要使用exp,比如我这次为用户做的数据库升级,从oracle9i升级到oracle11g。

我们需要在新服务器上创建数据库,创建表空间,创建用户,赋予用户权限,然后再执行imp命令导入数据。
创建用户之前我们可以通过select username from dab_users来获取需要创建的用户名,可是如何获得该用户的密码呢?
在创建语句create user <username> identified by <password>中,password怎么办?我们都知道oracle的用户密码是密文,无法直接使用。
在这里我们采用一个小方法来搞定这件事,请看下面的实验:

1,创建一个测试用户
SYS@PRACTICE >create user Lily identified by panda;

2,为用户Lily授权
SYS@PRACTICE >grant connect,resource to Lily;

3,查看用户Lily的密文密码
SYS@PRACTICE >col name for a20
SYS@PRACTICE >col password for a30
SYS@PRACTICE >select user#,name,password from user$ where name='LILY';

     USER# NAME                 PASSWORD
---------- -------------------- ------------------------------
        91 LILY                 1EE128BE3115C31B   <==密码panda加密后的模样



4,测试新用户登录
SYS@PRACTICE >conn Lily/panda
Connected.


5,在新数据库中创建用户Lily,密码和原数据库一致。
grant connect, resource to Lily identified by values '1EE128BE3115C31B';

6,在新系统上测试登录
conn Lily/panda
Connected.

到此利用密文密码创建用户成功。

有一点需要注意的是这个密文密码是和用户相关联的,两个不同的用户即使密码相同,它们的密文密码并不相同。
比如:
SYS@PRACTICE >create user u1 identified by panda;

User created.

SYS@PRACTICE >create user u2 identified by panda;

User created.

SYS@PRACTICE >col name for a20
SYS@PRACTICE >col password for a30
SYS@PRACTICE >select user#,name,password from user$ where name in ('U1','U2');

     USER# NAME                 PASSWORD
---------- -------------------- ------------------------------
       149 U1                   3F7B709FE0BD3E6A
       150 U2                   0EB66C29105D811E

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值