2009-12-11 88 views
4

有沒有一種工具可以讓我在多個Oracle數據庫中更改我的密碼?如何在多個Oracle數據庫中更改我的密碼?

它每個月到期,我想同時更改它們。

+0

會很方便 - 我可以看到實施它。如果沒有人提出任何建議,我可能會爲你寫一篇。我會檢查這個問題,看看你是否得到了一個好的答案。 – 2009-12-11 20:20:00

回答

0

我在這裏發現了一個很好的工具:http://www.bsutils.com/PassAid.html

+0

聽起來不錯,但如果你可以自己編譯源代碼會更好。不知道它的EXE超出了什麼狀態 – n00b 2012-12-26 17:22:24

+1

這是一個自解壓exe。源是所有批次。 – volni 2012-12-27 18:33:14

+0

沒有意識到,謝謝。做了使用sql plus自己。像魅力一樣工作。感謝分享 – n00b 2012-12-30 21:30:29

2

您可以在1個數據庫中更改您的密碼(我多年沒有這樣做 - 所以仔細試試這個 - 上次我做的是7.3.4和8i)然後將哈希從數據庫複製到數據庫。這用於工作。所以......在數據庫1

SQL> password 
Changing password for SCOTT 
Old password: 
New password: 
Retype new password: 

然後在同一個數據庫

SQL> SELECT password FROM dba_users WHERE username='SCOTT'; 
PASSWORD 
--------------- 
F81184D39902C27 

現在轉到其他數據庫中更改該密碼:

SQL> ALTER USER scott IDENTIFIED BY VALUES 'F81184D39902C27'; 
User altered. 

你可以寫一個小程序將連接到多個更改。我只有一個11i 數據庫才能對此進行測試。

+0

在11g中'DBA_USERS.PASSWORD'是空的;散列現在只能從'USR $'獲得。但即使在早期版本中,大多數用戶也不會擁有'DBA_USERS'上的權限,這是正確的。 – APC 2009-12-12 06:55:43

+0

從Oracle 10g及更早版本的用戶名和密碼中計算密碼哈希相對容易,在此之後,即使不訪問DBA_USERS,也可以使用「alter user ... values by values ...」。我相信,11g具有增強的安全模式,在這種模式下更難。 – Alohci 2009-12-13 00:41:49

3

有時,最簡單的可能是最好的。創建一個SQL * Plus腳本,看起來像替換變量:(當然,你會替換「myuser的」與您的用戶名和「DB1」等等與您的SQL * Net的別名)

connect myuser/&&[email protected]; 
alter user myuser identified by &&newpass replace &&oldpass; 
connect myuser/&&[email protected]; 
alter user myuser identified by &&newpass replace &&oldpass; 
connect myuser/&&[email protected]; 
alter user myuser identified by &&newpass replace &&oldpass; 
-- and so forth through your list of instances 

建設劇本。運行它,輸入一次新密碼和新密碼,它會改變它們。每次添加或刪除數據庫時,都需要編輯腳本,但這應該相當少見。請注意,密碼在運行時將在屏幕上顯示。

+0

fyi如果你沒有使用sql plus,它會與oracle捆綁在一起(可在oracle home/bin目錄中找到)。您只需創建腳本,然後在登錄到sql plus後運行它(您可以登錄到任何您擁有的db實例)。 – n00b 2012-12-26 19:40:39

0

如果您的系統上有Oracle網格控件,您可以創建一個作業(在作業中,然後創建sql作業),並指定目標組(如果已定義)或手動選擇要通過清單,然後針對這些數據庫運行該作業。

0

我想說,如果您必須使用相同的憑據登錄到多個數據庫,則應該使用其他選項(包括LDAP/Active Directory)進行身份驗證。

相關問題