附註:

在 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 工具。

在使用密碼變換功能之前,還有其他應該知道的事項。

目標

必要條件

作業 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 天) 的設定檔。

  1. 執行下列 SQL 查詢以建立名為 PW_ROLLOVER_TIME_1HR_PROF 的設定檔。

    create profile PW_ROLLOVER_TIME_1HR_PROF limit FAILED_LOGIN_ATTEMPTS 10 PASSWORD_ROLLOVER_TIME 1/24;
    

    顯示查詢結果的影像。

  2. 執行下列 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 指定給使用者。

  1. 執行下列 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>;
    
  2. 執行下列 SQL 查詢以授予 CREATE SESSION 權限,以測試資料庫連線。

    GRANT CREATE SESSION TO DB_TEST;
    

    顯示查詢結果的影像。

  3. 我們將使用下列 SQL 查詢來檢查帳戶狀態。

    select user_name, profile, account_status from dba_users where user_name = 'DB_TEST';
    

    顯示查詢結果的影像。

作業 4:變更使用者密碼

變更使用者密碼,並查看帳戶狀態。

  1. 執行下列 SQL 查詢以變更使用者密碼。

    alter user DB_TEST identified by "New_Pass@2023";
    
  2. 檢查帳戶狀態。

    顯示查詢結果的影像。

    帳戶狀態現在會顯示 IN ROLLOVER,這表示 DB_TEST 使用者帳戶目前處於累計狀態,而且可以使用舊密碼和新密碼來連線使用者 1 小時。1 小時之後,將不再接受舊密碼,而且只能使用新密碼來建立連線。

作業 5:強制到期展期期間

密碼輪換功能可讓我們在不想讓舊密碼在剩餘輪換期間有效時,強制到期輪換。

  1. 執行下列 SQL 查詢,讓使用者的密碼變換到期。

    alter user DB_TEST expire password rollover period;
    

    顯示查詢結果的影像。

  2. 檢查帳戶狀態。

    顯示查詢結果的影像。

    帳戶狀態已變更為 OPEN,我們無法再使用舊密碼連線至資料庫。因此,當使用者處於輪換狀態 (例如新密碼和舊密碼都正常運作) 時,DBA_USERS 表格中的帳戶狀態為 OPEN & IN ROLLOVER,而帳戶狀態在累計期間到期後會變更為 OPEN

認可

其他學習資源

瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center