附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 憑證、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特有的值。
在 Oracle Cloud Infrastructure 上的 Oracle Database 中設定漸進式密碼變換
簡介
漸進式密碼變換是 Oracle Database 中的一項功能,可以變更資料庫使用者的密碼,而不會中斷目前使用舊密碼的應用程式。使用漸進式密碼變換時,舊密碼在指定期間內仍有效,在此期間後便不再接受,亦即使用者暫時允許使用兩個不同的密碼。這樣便可以在不停機的情況下,將新密碼傳輸至所有從屬端應用程式。密碼輪換期間會在變更密碼時開始。
逐步密碼變換功能會以使用者設定檔密碼資源設定 (密碼資源限制) PASSWORD_ROLLOVER_TIME
的方式公開,此設定會套用至使用者階段作業。Oracle Database 中的使用者設定檔是資料庫資源的一組限制 - 使用者層次組態。使用者設定檔可協助規範每個資料庫使用者使用的資源數量。會使用名為 DEFAULT
的預設設定檔建立資料庫,如果未指定,則會指派給資料庫的所有使用者。您可以使用預設設定檔或建立新的設定檔來新增密碼資源限制。
在本教學課程中,我們將專注於 PASSWORD_ROLLOVER_TIME
,並逐步介紹如何在 Oracle Autonomous Transaction Processing (ATP) 資料庫服務中使用此功能。基於此目的,我們將使用 OCI 主控台的 Oracle SQL Developer Web 工具。
在使用密碼變換功能之前,還有其他應該知道的事項。
-
如果密碼在變換期間內再次變更,則只有最舊與最新的密碼仍然有效,例如,如果一開始使用者的密碼 p1 已變更為 p2 且密碼變換為 p2,且在第一次變更的變換期間內再次變更為 p3,則只有 p1 與 p3 保持有效,且 p2 變為無效。此外,密碼輪換期間的到期時間不會變更,亦即不會更新密碼變更。這在密碼變換視窗內多次循環密碼時非常有用,因為應用程式仍然可以使用舊密碼來建立連線。
-
管理使用者即使附加至已設定
PASSWORD_ROLLOVER_TIME
參數的設定檔,且無法將管理權限授與附加至已設定PASSWORD_ROLLOVER_TIME
參數之設定檔的使用者,也無法使用密碼變換功能。
目標
- 在 Oracle Database 中使用逐步密碼變換功能。利用此功能可避免因密碼變更而導致應用程式停機或協調發生。
必要條件
-
作用中的 OCI 帳戶。
-
Oracle Database 的知識
-
ATP 資料庫執行處理。
-
能夠建立設定檔並將設定檔指定給 Oracle Cloud Infrastructure Database 使用者的使用者權限。
作業 1:檢查可承諾量的預設設定檔
我們會在 ATP 中看到預設設定檔與 PASSWORD_ROLLOVER_TIME
資源的值。
開啟 Oracle SQL Developer Web 工具並執行下列 SQL 查詢,以檢查 DEFAULT
設定檔的限制。
select * from dba_profiles where profile = 'DEFAULT';
在下列影像中,我們看到 DEFAULT
設定檔有許多資源,而 PASSWORD_ROLLOVER_TIME
的限制 (值) 為 0。這表示已停用 DEFAULT
設定檔的逐步密碼變換。您可以變更 DEFAULT
設定檔中的資源限制,但是我們會建立新的設定檔以示範此功能。
作業 2:建立新的使用者設定檔
建立 FAILED_LOGIN_ATTEMPTS
設為 10 且 PASSWORD_ROLLOVER_TIME
限制為 1 小時 (1/24 天) 的設定檔。
-
執行下列 SQL 查詢以建立名為
PW_ROLLOVER_TIME_1HR_PROF
的設定檔。create profile PW_ROLLOVER_TIME_1HR_PROF limit FAILED_LOGIN_ATTEMPTS 10 PASSWORD_ROLLOVER_TIME 1/24;
-
執行下列 SQL 查詢以檢查
PASSWORD_ROLLOVER_TIME
限制。select * from dba_profiles where profile = 'PW_ROLLOVER_TIME_1HR_PROF';
PASSWORD_ROLLOVER_TIME
的資源限制為0.416
(1/24 天),失敗的登入嘗試設為10
。
作業 3:建立使用者帳戶
我們將會建立使用者帳戶,並將建立的設定檔 PW_ROLLOVER_TIME_1HR_PROF
指定給使用者。
-
執行下列 SQL 查詢以建立名為
db_test
的使用者。create user db_test identified by "Pass_Rollover@2023" profile = 'PW_ROLLOVER_TIME_1HR_PROF';
您也可以使用下列指令,將現有的使用者附加至設定檔。
alter user <user_name> profile <profile_name>;
-
執行下列 SQL 查詢以授予
CREATE SESSION
權限,以測試資料庫連線。GRANT CREATE SESSION TO DB_TEST;
-
我們將使用下列 SQL 查詢來檢查帳戶狀態。
select user_name, profile, account_status from dba_users where user_name = 'DB_TEST';
作業 4:變更使用者密碼
變更使用者密碼,並查看帳戶狀態。
-
執行下列 SQL 查詢以變更使用者密碼。
alter user DB_TEST identified by "New_Pass@2023";
-
檢查帳戶狀態。
帳戶狀態現在會顯示
IN ROLLOVER
,這表示DB_TEST
使用者帳戶目前處於累計狀態,而且可以使用舊密碼和新密碼來連線使用者 1 小時。1 小時之後,將不再接受舊密碼,而且只能使用新密碼來建立連線。
作業 5:強制到期展期期間
密碼輪換功能可讓我們在不想讓舊密碼在剩餘輪換期間有效時,強制到期輪換。
-
執行下列 SQL 查詢,讓使用者的密碼變換到期。
alter user DB_TEST expire password rollover period;
-
檢查帳戶狀態。
帳戶狀態已變更為
OPEN
,我們無法再使用舊密碼連線至資料庫。因此,當使用者處於輪換狀態 (例如新密碼和舊密碼都正常運作) 時,DBA_USERS
表格中的帳戶狀態為OPEN & IN ROLLOVER
,而帳戶狀態在累計期間到期後會變更為OPEN
。
相關連結
認可
- 作者 - Satyam Kumar (技術人員成員)
其他學習資源
瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Set up Gradual Password Rollover in Oracle Database on Oracle Cloud Infrastructure
F93100-01
February 2024
Copyright © 2024, Oracle and/or its affiliates.