2016-10-08 107 views
15

我忘記了一個dev實例的密碼(不負責任的..是的,我正在處理它)。我的密碼保存在我的DBeaver中。我仍然可以使用該連接進行連接。 Dbeaver沒有以純文本顯示它。無論如何,我可以檢索密碼嗎?要求DBA重置密碼是最後的手段。我試圖複製粘貼到記事本,顯然禁用了複製。恢復存儲在我的DBeaver連接中的DB密碼

回答

21

我最近面臨這個問題。請按照以下步驟操作(我的Dbeaver版本是3.5.8,它位於Mac OSX El Capitan上)

  1. 找到DBeaver存儲連接詳細信息的文件。對於 我,它在這個位置 ~/.dbeaver/General/.dbeaver-data-sources.xml。這個文件是隱藏的, 所以請記住,當你尋找它。
  2. 在該文件中找到您感興趣的數據源定義節點。
  3. 解密密碼:不幸的是,除了密碼外,一切都是純文本的;密碼以某種加密形式。通過複製DBeaver解密密碼的方法的核心,我把一個快速而髒的Java program放在一起。一旦你有加密的口令字符串,只是執行這個程序,它會將密碼轉換爲純文本並打印

如何運行

行number 13,只是與任何加密的密碼替換OwEKLE4jpQ==您正在爲您感興趣的數據源在.dbeaver-data-sources.xml文件中找到。編譯並運行它,它將打印純文本密碼。

https://github.com/so-random-dude/oneoffcodes/blob/master/SimpleStringEncrypter.java

+0

我試圖讓這個與下面的步驟工作,但它不工作。 我編輯程序以包含文件中的加密字符串。我用'javac SimpleStringEncrypter.java'編寫了程序。然後試圖用'javac SimpleStringEncrypter'運行它我收到錯誤'無法找到或加載主類' – Oranges13

+0

@ Oranges13這是一個奇怪的問題,我認爲它與此程序無關。我建議你編譯併成功運行一個helloworld程序,然後用上面給出的文件替換該程序的內容,然後重新編譯並運行它。 –

+0

我不得不將文件中的命名空間註釋掉以使其有效工作。 – Oranges13