zoukankan      html  css  js  c++  java
  • 不知道密码情况下创建用户 (转)

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

  • 相关阅读:
    【linux】——man中文帮助手册安装
    【linux】——centos 分辨率配置
    松本行弘访谈录
    图灵热点之阅读篇——五月图书推荐
    《Linux/Unix 设计思想》的翻译细节讨论
    一本书的推荐序——写在《思考的乐趣》即将上市之际
    带您走进七周七语言的程序世界
    作者为何要创作《网站转换率优化之道》
    Apress水果大餐——移动开发
    “怪诞”的数学天才
  • 原文地址:https://www.cnblogs.com/tippoint/p/3953440.html
Copyright © 2011-2022 走看看