暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

identified by values重置用户密码

未入门dba 2025-01-07
190

在DBA的实际工作中,经常会遇到一些情况,例如,我不知道一个用户的密码,但是我需要通过这个用户登入到数据库里面做一些动作,而且还必须通过此用户登录,比如为一个用户创建私有的DB Link或者迁移一些数据到新的数据库,开发人员要求和原来的数据库密码保持一致,我们一个个去收集密码麻烦还容易出错,这个时候怎么办呢? 

Oracle 的alter user语句提供了一个identified by values子句,这个子句可以让DBA在不知道密码明文的情况下,直接使用数据库字典中保存的密码密文进行修改密码。

  1. 例如我需要登入一个用户,完成以后改回原来的密码,如下:

SQL>select PASSWORD from sys.user$ where name = 'UT001'; --获取当前用户的密码密文

SQL>alter user UT001 identified by 123456; --修改用户密码为123456

SQL>alter user UT001 identified by values 'S:C7C81BBE7760B5BBB3973F0971AA36C737BF6DCC4A34FE925CE70B0739BD'; --修改密码为原来的密码。


2. 迁移数据库环境,在新库创建和源库一致的用户名和密码,如下:

SQL>select 'create user '|| name || ' identified by values ''' || password || ''';' from sys.user$ where name in ('UT001','UT002'.....);

使用拼接好的SQL直接在新库里面执行即可,当然,也可以制定PROFILE,DefTABLESPACE,TempTABLESPACE等等信息。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论