1. 程式人生 > >檢視並修改Oracle使用者的密碼【oracle不能檢視dba users裡password欄位(儲存密碼的加密過的字串

檢視並修改Oracle使用者的密碼【oracle不能檢視dba users裡password欄位(儲存密碼的加密過的字串

本文是資料庫版本:9.2.0.5有時候我們可能不知道一個使用者的密碼,但是又需要以這個使用者做一些操作,又不能去修改掉這個使用者的密碼,或者自己乾脆忘記密碼了,想修改自己的密碼,這個時候,就可以利用一些小竅門,來完成操作。具體操作過程如下:SQL*Plus: Release 9.2.0.5.0 - Production on 星期日 11月 21 13:32:34 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect sys/oracle as sysdba已連線。SQL> select username,password from dba_users;USERNAME            PASSWORD------------------------------ ------------------------------SYS              8A8F025737A9097ASYSTEM             2D594E86F93B17A1DBSNMP             E066D214D5421CCCTOAD              A1BA01CF0DD82695OUTLN             4A3BA55E08595C81WMSYS             7C9BA362F8314299已選擇6行。SQL> connect system/oracle已連線。SQL> connect sys/oracle as sysdba已連線。修改使用者system密碼為managerSQL> alter user system identified by manager;使用者已更改。SQL> select username,password from dba_users;USERNAME            PASSWORD------------------------------ ------------------------------SYS              8A8F025737A9097ASYSTEM             D4DF7931AB130E37DBSNMP             E066D214D5421CCCTOAD              A1BA01CF0DD82695OUTLN             4A3BA55E08595C81WMSYS             7C9BA362F8314299已選擇6行。SQL> connect system/manager已連線。然後此時可以做想要做的任何操作了SQL> connect sys/oracle as sysdba已連線。修改使用者system密碼為以前的值SQL> alter user system identified by values '2D594E86F93B17A1';使用者已更改。SQL> connect system/oracle已連線。SQL> connect sys/oracle as sysdba已連線。SQL> connect system/managerERROR:ORA-01017: invalid username/password; logon denied警告: 您不再連線到 ORACLE。參考:說明:oracle是不充許查詢密碼的,也就是說,不能檢視dba_users裡password欄位(儲存密碼的加密過的字串)對應的密碼明文。

因為資料庫存放的密碼(比如,dba_users裡的password欄位)是加密的資料,所以,

如果是忘記了密碼,只能通過重新初始化密碼:

alter user username identified by pwd;

在資料字典中儲存的密碼是被HASH演算法加密過的,加密後的值不但跟密碼本身有關還跟使用者名稱有關,也就是,如果是不相同的使用者名稱那麼即使是完全相同的密碼,加密後的HASH值也是不一樣的。這樣保證了每一個使用者的每一個密碼都有自己獨一無二的HASH值。

為啥oracle安全性高,就是他的加密牛X。你搞別人的密碼幹啥。假如你實在要的話,我記得以前做專案的時候寫過MD5加密程式,只要在把你要的加密後的放入其中執行就可以轉成真實的。或者你就在網上下一個破解MD5密碼的生成器吧。不過我可不能保證一定正確。