2012-06-06 61 views
1

我試圖寫一個門戶網站(APEX),允許用戶自己選擇執行不同的數據庫帳戶

我相關的數據庫更改其密碼的腳本下PL/SQL存儲過程試圖編寫一個pl/sql過程,我可以通過數據庫鏈接執行以更改該數據庫上的密碼。

我想我問的是我可以作爲一個PL/SQL塊中的不同用戶連接,並從該塊內運行alter user identified by

CREATE OR REPLACE PROCEDURE CHPWD 
(
    Database IN VARCHAR2 
, Username IN VARCHAR2 
, old_pw IN VARCHAR2 
, new_pw IN VARCHAR2 
) AS 
BEGIN 
/* Something like conn Username/old_pw here 

then 

alter username identified by new_pw */ 

END CHPWD; 

謝謝!

回答

2

標準方法是讓擁有高權限用戶的程序擁有權限,該用戶可以更改任何密碼,將程序的執行權授予應該能夠執行該程序的用戶,並將邏輯放入程序中以實現安全性限制。

0

我相信主要的問題是在更改之前驗證用戶的密碼。我不認爲有一個安全的方法來做到這一點 - 確認密碼的最好方法就是像你的評論一樣,用它登錄到數據庫。這需要將密碼傳遞給外部腳本,儘管這會將您的純文本密碼顯示給有權訪問系統的任何人。

另一種方法是把人們已經使用複製Oracle的密碼散列算法的算法 - 但這是有效砍死在一起,可能改變: http://www.petefinnigan.com/weblog/archives/00001097.htm

相關問題