不少数据库迁移要求使用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数据库