搭配自治式 AI 資料庫使用身分識別與存取管理 (IAM) 認證

您可以設定讓自治式 AI 資料庫使用 Oracle Cloud Infrastructure Identity and Access Management (IAM) 認證和授權,讓 IAM 使用者能夠存取具備 IAM 證明資料的自治式 AI 資料庫。

注意:識別網域的商業租用戶以及不包含識別網域的舊版 Oracle Cloud Infrastructure IAM,都支援與 Oracle Cloud Infrastructure (OCI) IAM 的自治式 AI 資料庫整合。具備識別網域的 Oracle Cloud Infrastructure IAM 導入新的 OCI 租用戶,時間為 2021 年 11 月 8 日之後所建立。自治式 AI 資料庫支援預設和非預設識別網域中的使用者和群組。

關於使用自治式 AI 資料庫進行身分識別與存取管理 (IAM) 認證

Oracle Cloud Infrastructure IAM 與自治式 AI 資料庫的整合支援資料庫密碼認證和權杖型驗證。請參閱驗證和授權 Oracle Autonomous AI 資料庫的 IAM 使用者,瞭解在自治式 AI 資料庫上使用 IAM 使用者的架構完整詳細資訊。

IAM 資料庫密碼認證

注意:所有支援的 12c 和更新版本的資料庫從屬端都可用於對自治式 AI 資料庫的 IAM 資料庫密碼存取。

Oracle Cloud Infrastructure IAM 資料庫密碼可讓 IAM 使用者登入自治式 AI 資料庫執行處理,因為 Oracle Database 使用者通常會以使用者名稱和密碼登入。使用者輸入其 IAM 使用者名稱和 IAM 資料庫密碼。IAM 資料庫密碼與 Oracle Cloud Infrastructure 主控台密碼不同。使用密碼驗證器的 IAM 使用者,您可以使用任何支援的資料庫從屬端登入自治式 AI 資料庫。

身分識別與存取管理 (IAM) SSO 權杖型驗證

資料庫從屬端有幾種方式可以取得 IAM 資料庫記號:

如果使用者輸入使用者名稱 / 密碼進行登入,則無論從屬端的資料庫權杖設定為何,資料庫驅動程式都會使用密碼驗證程式方法來存取資料庫。

自治式 AI 資料庫的身分識別與存取管理 (IAM) 認證先決條件

在自治式 AI 資料庫上使用身分識別與存取管理 (IAM) 認證之前,您必須確定下列事項:

變更自治式 AI 資料庫上的外部身分識別提供者

描述將外部身分識別提供者從 (IAM) 認證和授權變更為其他外部認證提供者的步驟,反之亦然。

預設會對新佈建的自治式 AI 資料庫和自治式容器資料庫啟用使用者的 Oracle Cloud Infrastructure (IAM) 認證和授權。您可以為自治式 AI 資料庫啟用其他外部認證配置,例如具備 Active Directory (CMU-AD)、Azure AD 和 Kerberos 的集中管理使用者。不過,在任何指定時間只能啟用一個外部認證配置。

若要讓資料庫使用者能夠使用其他外部認證配置連線至自治式 AI 資料庫,請執行下列動作:

  1. 使用 DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION 程序停用 IAM 整合:

    舉例而言:

     BEGIN
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
     END;
     /
    

    如需其他資訊,請參閱 DISABLE_EXTERNAL_AUTHENTICATION 程序

  2. 請依照下列頁面所述的步驟,設定您選擇的其他外部認證配置:

  3. 使用 Oracle Cloud Infrastructure (IAM) 認證與授權,重新啟用 IAM 使用者以連線至自治式 AI 資料庫。

    以 ADMIN 使用者身分,使用下列參數執行 DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION 程序:

     BEGIN
       DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
    
         type => 'OCI_IAM'
         force => TRUE
         );
     END;
     /
    

    上述範例會停用目前啟用並啟用 Oracle Cloud Infrastructure (IAM) 認證與授權的任何外部認證提供者。

    在本範例中:

    • force 設定為 TRUE,以停用目前啟用的外部驗證。

    • type 設為 'OCI_IAM' 以啟用及使用 Oracle Cloud Infrastructure (IAM) 認證與授權。

    注意:依照預設,force 參數為 FALSE。啟用另一個外部驗證方法且 forceFALSE 時,DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION 會報告下列錯誤:ORA-20004: Another external authentication is already enabled.

    請參閱 ENABLE_EXTERNAL_AUTHENTICATION Procedure 以取得進一步的參照。

  4. 檢查 IDENTITY_PROVIDER_TYPE 系統參數的值,如下所示:

     SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
     NAME                   VALUE
    
     ---------------------- -------
     identity_provider_type OCI_IAM
    

為 IAM 使用者建立身分識別與存取管理 (IAM) 群組和原則

描述撰寫 IAM 群組原則敘述句的步驟,讓 IAM 使用者能夠存取 Oracle Cloud Infrastructure 資源 (特別是自治式 AI 資料庫執行處理)。

原則是一組敘述句,指定誰可以存取特定資源以及如何存取。您可以授予整個租用戶、區間中的資料庫或個別資料庫的存取權。這表示您可以撰寫原則敘述句,讓特定群組可以特定類型存取特定區間內的特定資源。

注意: 必須定義原則,才能使用 IAM 權杖存取自治式 AI 資料庫。使用 IAM 資料庫密碼存取自治式 AI 資料庫時,不需要有原則。

若要啟用自治式 AI 資料庫,讓 IAM 使用者能夠使用 IAM 權杖連線至資料庫:

  1. 建立群組並將使用者新增至群組,以執行 Oracle Cloud Infrastructure Identity and Access Management 先決條件。

    例如,建立 sales_dbusers 群組。

    如需詳細資訊,請參閱管理群組

  2. 撰寫原則敘述句以啟用對 Oracle Cloud Infrastructure 資源的存取。

    1. 在 Oracle Cloud Infrastructure 主控台中,按一下身分識別與安全性

    2. 身分識別與安全性底下,按一下原則

    3. 若要寫入原則,請按一下建立原則

    4. 在「建立政策」頁面上,輸入名稱和說明。

    5. 在「建立原則」頁面上,選取顯示手動編輯器

       [Description of the illustration adb_iam_create_policy_manual.png](img_text/adb_iam_create_policy_manual.html)
      
    6. 使用 Policy Builder 建立原則。

      例如,若要建立允許 IAM 群組 DBUsers 中使用者存取其租用戶中任何自治式 AI 資料庫的原則:

       Allow group DBUsers to use autonomous-database-family in tenancy
      

      例如,建立限制 DBUsers 群組成員只能存取 testing_compartment 區間中自治式 AI 資料庫的原則:

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment
      

      例如,若要建立原則,限制對區間中單一資料庫的群組存取:

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment where target.database.id = 'ocid1.autonomousdatabase.oc1.iad.aaaabbbbcccc'
      

      如需有關存取資料庫之 IAM 原則的詳細資訊,請參閱 Database Security Guide 中的 Creating an IAM Policy to Authorize Users Authenticating with Tokens

    7. 按一下建立

      請參閱管理原則,瞭解原則的詳細資訊。

在自治式 AI 資料庫上建立與 IAM 使用者搭配使用的原則注意事項:

在自治式 AI 資料庫新增 IAM 使用者

若要新增允許存取自治式 AI 資料庫的 IAM 使用者,請將資料庫全域使用者對應至含有 CREATE USERALTER USER 敘述句 (使用 IDENTIFIED GLOBALLY AS 子句) 的 IAM 群組或使用者。

IAM 使用者與自治式 AI 資料庫執行處理的授權可藉由將 IAM 全域使用者 (綱要) 對應至 IAM 使用者 (獨佔對應) 或 IAM 群組 (共用綱要對應) 來運作。

若要授權自治式 AI 資料庫執行處理上的 IAM 使用者:

  1. 以 ADMIN 使用者身分登入已啟用使用 IAM 的資料庫 (ADMIN 使用者擁有這些步驟所需的必要 CREATE USERALTER USER 系統權限)。

  2. 在自治式 AI 資料庫使用者 (綱要) 與 CREATE USERALTER USER 敘述句之間建立對應,並包含指定 IAM 群組名稱的 IDENTIFIED GLOBALLY AS 子句。

    使用下列語法將全域使用者對應至 IAM 群組:

     CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';
    

    例如,若要將名為 db_sales_group 的 IAM 群組對應至名為 sales_group 的共用資料庫全域使用者:

     CREATE USER sales_group IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=db_sales_group';
    

    這會建立共用的全域使用者對應。對映 (全域使用者 sales_group) 對 IAM 群組中的所有使用者有效。因此,db_sales_group 中的任何人都可以使用其 IAM 證明資料登入資料庫 (透過 sales_group 全域使用者的共用對應)。

    下列範例顯示如何針對非預設網域完成此作業:

     CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/db_sales_group';
    
  3. 若要建立其他 IAM 群組或使用者的其他全域使用者對應,請針對每個 IAM 群組或使用者遵循這些步驟。

注意:即使已啟用自治式 AI 資料庫進行 IAM 認證,非 IDENTIFIED GLOBALLY 的資料庫使用者仍可繼續登入。

將本機 IAM 使用者僅對應至 Oracle Database 全域使用者

  1. 以 ADMIN 使用者身分登入已啟用使用 IAM 的資料庫 (ADMIN 使用者擁有這些步驟所需的必要 CREATE USERALTER USER 系統權限)。

  2. 在「自治式 AI 資料庫」使用者 (綱要) 與 CREATE USERALTER USER 敘述句之間建立對應,並包含 IDENTIFIED GLOBALLY AS 子句 (指定 IAM 本機 IAM 使用者名稱)。

    例如,若要建立名為 peter_fitch 的新資料庫全域使用者,並將此使用者對應至名為 peterfitch 的現有本機 IAM 使用者:

     CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'
    

    下列範例顯示如何透過指定非預設網域 sales_domain 來建立使用者:

     CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS
     'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';
    

在自治式 AI 資料庫新增 IAM 角色

選擇性地建立全域角色,以便在多個 IAM 使用者對應至相同的共用全域使用者時,提供額外的資料庫角色和權限給 IAM 使用者。

對自治式 AI 資料庫的使用者 (綱要) 或共用使用者對應使用獨有的 IAM 對應時,可以選擇是否使用全域角色。例如,可以將所有權限和角色授予共用綱要,而對應至共用綱要的所有 IAM 使用者,都會被授予指派給共用綱要的權限和角色。

您可以使用全域角色,選擇性地區分使用相同共用綱要的使用者。例如,一組使用者可以擁有相同的共用綱要,而共用綱要則可以有 CREATE SESSION 權限。然後全域角色可以用來提供差異化的權限,以及指派給所有使用相同共用綱要之不同使用者群組的角色。

透過將自治式 AI 資料庫全域角色對應至 IAM 群組,將其他角色授予自治式 AI 資料庫中的 IAM 使用者。

若要將自治式 AI 資料庫全域角色對應至 IAM 群組,請執行下列動作:

  1. 以 ADMIN 使用者身分登入已啟用使用 IAM 的資料庫 (ADMIN 使用者擁有這些步驟所需的必要 CREATE USERALTER USER 系統權限)。

  2. 使用 CREATE ROLEALTER ROLE 敘述句設定自治式 AI 資料庫角色的資料庫授權,並包含指定 IAM 群組名稱的 IDENTIFIED GLOBALLY AS 子句。

    使用下列語法將全域角色對應至 IAM 群組:

     CREATE ROLE global_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';
    

    例如,若要將名為 ExporterGroup 的 IAM 群組對應至名為 export_role 的共用資料庫全域角色:

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=ExporterGroup';
    

    下列範例顯示如何透過指定非預設網域 sales_domain 來建立角色:

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/ExporterGroup';
    

    sales_domain 網域中 ExporterGroup 的所有成員在登入資料庫時,都會以資料庫全域角色 export_role 授權。

  3. 您可以使用 GRANT 敘述句,將必要的權限或其他角色授與全域角色。

     GRANT CREATE SESSION TO export_role;
     GRANT DWROLE TO export_role;
    
  4. 若要讓現有的資料庫角色與 IAM 群組關聯,請使用 ALTER ROLE 敘述句更改現有的資料庫角色,將角色對應至 IAM 群組。請使用下列語法更改現有的資料庫角色,將其對應至 IAM 群組:

     ALTER ROLE existing_database_role
        IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';
    

若要為其他 IAM 群組新增其他全域角色對應,請針對每個 IAM 群組遵循這些步驟。

建立 IAM 使用者的 IAM 資料庫密碼

若要新增 IAM 使用者並允許 IAM 使用者透過提供使用者名稱和密碼來登入「自治式 AI 資料庫」,您必須建立 IAM 資料庫密碼。

請參閱使用 IAM 資料庫密碼以瞭解詳細資訊。

使用身分識別與存取管理 (IAM) 認證連線至自治式 AI 資料庫

資料庫 ADMIN 使用者將全域使用者和全域角色對應至 IAM 使用者和 IAM 群組之後,使用者可以使用其 Oracle Cloud Infrastructure IAM 證明資料登入自治式 AI 資料庫執行處理,或透過 Oracle Cloud Infrastructure IAM 資料庫權杖存取資料庫。

您仍然可以使用本機資料庫帳戶使用者名稱和密碼 (非全域資料庫使用者帳戶) 登入「自治式 AI 資料庫」。

您可以使用資料庫從屬端,以 Oracle Cloud Infrastructure IAM 使用者身分存取自治式 AI 資料庫執行處理。若要使用 Oracle Cloud Infrastructure IAM 使用者名稱和密碼證明資料以及密碼驗證程式的從屬端,資料庫從屬端必須是 12c 或更新的版本。

或者,您也可以使用 Oracle Cloud Infrastructure IAM 資料庫權杖,以支援的從屬端存取自治式 AI 資料庫執行處理:

注意:如果您的「自治式 AI 資料庫」執行處理處於「限制模式」,則只有具備 RESTRICTED SESSION 權限 (例如 ADMIN) 的使用者才能連線至資料庫。

關於使用 IAM 連線至專用 Exadata 基礎架構執行處理上的自治式 AI 資料庫

IAM 使用者可以使用 IAM 資料庫密碼驗證程式或 IAM 權杖,連線至專用 Exadata 基礎架構執行處理上的自治式 AI 資料庫。

使用 IAM 資料庫密碼驗證程式與 Oracle Database 密碼認證處理作業類似。不過,驗證程式會改為儲存為 Oracle Cloud Infrastructure (OCI) IAM 使用者設定檔的一部分,而不是儲存在專用 Exadata 基礎架構上的自治式 AI 資料庫中的密碼驗證程式 (密碼的加密雜湊)。

第二個連線方法 (對資料庫使用 IAM 記號) 更為現代化。使用權杖型存取權較適合雲端資源,例如專用 Exadata 基礎架構上的自治式 AI 資料庫。權杖是以 IAM 端點可強制實行的強度為基礎。這可以是多因素認證,比只使用密碼還要強。使用記號的另一個優點是,密碼驗證程式 (被視為機密) 一律不會儲存在記憶體中或儲存在記憶體中。

使用 IAM 資料庫密碼驗證程式的從屬端連線

設定 IAM 使用者所需的授權之後,此使用者就可以使用現有的從屬端應用程式 (例如 SQL*Plus 或 SQLcl) 登入,而不需要進行其他組態設定。

IAM 使用者使用任何目前支援的資料庫從屬端,輸入 IAM 使用者名稱和 IAM 資料庫密碼 (不是 Oracle Cloud Infrastructure (OCI) 主控台密碼)。唯一的限制條件是資料庫從屬端版本為 Oracle Database 版本 12.1.0.2 或更新版本,以使用 Oracle Database 12c 密碼。資料庫從屬端必須能夠使用 12C 密碼驗證程式。IAM 不支援使用 11G 驗證程式加密。IAM 使用者不需要設定特殊從屬端或工具組態,即可連線至專用 Exadata 基礎架構執行處理上的自治式 AI 資料庫。

使用記號的從屬端連線

For IAM token access to the Autonomous AI Database on Dedicated Exadata Infrastructure, the client application or tool requests a database token from IAM for the IAM user.

從屬端應用程式會透過資料庫從屬端 API 將資料庫權杖直接傳送給資料庫從屬端。

如果尚未更新應用程式或工具來要求 IAM 權杖,則 IAM 使用者可以使用 Oracle Cloud Infrastructure (OCI) 命令行介面 (CLI) 來要求及儲存資料庫權杖。您可以使用下列證明資料要求資料庫存取記號 (db-token):

當 IAM 使用者以斜線 / 登入並設定 OCI_IAM 參數 (sqlnet.oratnsnames.ora 或作為連線字串的一部分) 登入從屬端時,資料庫從屬端便會從檔案擷取資料庫記號。如果 IAM 使用者送出使用者名稱和密碼,連線將會使用針對使用 IAM 資料庫密碼驗證程式之從屬端連線所描述的 IAM 資料庫驗證程式存取。本指南中的指示顯示如何使用 OCI CLI 作為資料庫記號的協助程式。如果應用程式或工具已更新為使用 IAM,請遵循應用程式或工具的指示。部分常見使用案例包括:內部部署 SQL*Plus、內部部署 SQLcl、Cloud Shell 中的 SQL*Plus 或使用 SEP 公事包的應用程式。

下列主題說明如何:

設定使用 IAM 資料庫密碼之 SQL*Plus 的從屬端連線

您可以設定 SQL*Plus 使用 IAM 資料庫密碼。

為使用 IAM 記號的 SQL*Plus 設定從屬端連線

您可以為使用 IAM 權杖的 SQL*Plus 設定從屬端連線。

  1. 請確定您有 IAM 使用者帳戶。

  2. 請洽詢 IAM 管理員和 Oracle Database 管理員,確定您有一個原則,可讓您存取區間或租用戶中的資料庫,以及對應至資料庫中的全域綱要。

  3. 如果您的應用程式或工具不支援直接 IAM 整合,請下載、安裝及設定 OCI CLI。(請參閱 OCI 指令行介面快速啟動。) 在 OCI CLI 組態中設定 API 金鑰,並選取預設值。

    1. 設定 IAM 使用者的 API 金鑰存取權。

    2. 擷取 db-token。舉例而言:

      • 使用 Oracle Cloud Infrastructure (OCI) 命令行介面擷取具有 API-keydb-token

        oci iam db-token get
        
      • 擷取具有安全性 (或階段作業) 權杖的 db-token

        oci iam db-token get --auth security_token
        

        如果安全權杖已過期,將會顯示一個視窗,讓使用者能夠再次登入 OCI。這會產生使用者的安全權杖。OCI CLI 將使用此重新整理的權杖取得 db-token

      • 使用委派記號擷取 db-token:當您登入 Cloud Shell 時,委派記號會自動產生並放置在 /etc 目錄中。若要取得此記號,請在 Cloud Shell 中執行下列命令:

        oci iam db-token get
        
      • 使用 OCI 命令行介面擷取執行處理權杖:

        oci iam db-token get --auth instance_principal
        
    3. 您也可以將資料庫從屬端設定為使用 IAM 使用者名稱和 IAM 資料庫密碼擷取資料庫權杖。

      請參閱使用 IAM 使用者名稱和資料庫密碼要求之記號的從屬端連線以瞭解詳細資訊。

    請參閱必要的金鑰和 OCID ,瞭解詳細資訊。

  4. 請確定您使用的是 Oracle Database 從屬端版本 19c 和 21c 的最新版本更新。

    此組態僅適用於 Oracle Database 從屬端版本 19c 或 21c。

  5. 依照現有的程序從「自治式 AI 資料庫」下載公事包,然後依照設定公事包與 SQL*Plus 搭配使用的指示進行。

    1. 透過在 sqlnet.ora 中尋找 SSL_SERVER_DN_MATCH=ON 來確認已啟用 DN 比對。

    2. TOKEN_AUTH=OCI_TOKEN 新增至 sqlnet.ora 檔案,將資料庫從屬端設定為使用 IAM 記號。因為您將使用資料庫記號檔案的預設位置,所以您不需要包括記號位置。

    tnsnames.ora 連線字串中的 TOKEN_AUTHTOKEN_LOCATION 值優先於該連線的 sqlnet.ora 設定值。例如,針對連線字串,假設記號位於預設位置 (~/.oci/db-token 代表 Linux):

     (description=
       (retry_count=20)(retry_delay=3)
       (address=(protocol=tcps)(port=1522)
       (host=example.us-phoenix-1.oraclecloud.com))
       (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
       (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
          OU=Oracle BMCS US, O=Example Corporation,
          L=Redwood City, ST=California, C=US")
       (TOKEN_AUTH=OCI_TOKEN)))
    

使用 TOKEN_AUTH 參數更新連線字串之後,IAM 使用者可以執行下列命令來啟動 SQL\*Plus,以登入「自治式 AI 資料庫」執行處理。您可以包括連線描述區本身,或使用 tnsnames.ora 檔案的描述區名稱。

connect /@exampledb_high

connect /@(description=
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
     OU=Oracle BMCS US, O=Example Corporation,
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

資料庫從屬端已經設定為取得 db-token,因為已經透過 sqlnet.ora 檔案或連線字串設定 TOKEN_AUTH。資料庫從屬端會取得 db-token 並使用私密金鑰進行簽署,然後將權杖傳送至「自治式 AI 資料庫」。如果指定 IAM 使用者名稱和 IAM 資料庫密碼而非斜線 /,則資料庫從屬端將會使用密碼而非使用 db-token 來連線。

使用執行處理委派人存取具備身分識別與存取管理 (IAM) 認證的自治式 AI 資料庫

在 ADMIN 使用者啟用自治式 AI 資料庫上的 Oracle Cloud Infrastructure IAM 之後,應用程式便可使用執行處理主體透過 Oracle Cloud Infrastructure IAM 資料庫權杖存取資料庫。

如需詳細資訊,請參閱使用執行處理主體存取 Oracle Cloud Infrastructure API

設定代理主機認證

代理主機認證可讓 IAM 使用者代理主機至資料庫綱要,以進行應用程式維護等工作。

代理主機認證通常用來認證真實使用者,然後授權他們使用具有綱要權限和角色的資料庫綱要來管理應用程式。共用應用程式綱要密碼等替代方法被視為不安全,無法稽核實際的使用者執行動作。

使用案例可在應用程式資料庫管理員的具名 IAM 使用者使用其證明資料進行認證,然後代理資料庫綱要使用者 (例如 hrapp) 進行認證的環境中。此認證可讓 IAM 管理員以使用者 hrapp 的身分使用 hrapp 權限和角色來執行應用程式維護,但仍可使用其 IAM 證明資料進行認證。應用程式資料庫管理員可以登入資料庫,然後代理應用程式綱要來管理此綱要。

您可以設定密碼認證和權杖認證方法的代理主機認證。

設定 IAM 使用者的代理主機認證

若要設定 IAM 使用者的代理主機認證,IAM 使用者必須已經有全域綱要 (專用或共用對應) 的對應。IAM 使用者要代理的個別資料庫綱要也必須可供使用。

確定您擁有此類型的使用者之後,請更改資料庫使用者,讓 IAM 使用者代理該使用者。

  1. 以具有 ALTER USER 系統權限的使用者身分登入「自治式 AI 資料庫」執行處理。

  2. 授予 IAM 使用者代理本機資料庫使用者帳戶的權限。無法在命令中參照 IAM 使用者,因此必須在資料庫全域使用者之間建立代理主機 (對應至 IAM 使用者) 和目標資料庫使用者。在下列範例中,hrapp 是要代理的資料庫綱要,而 peterfitch_schema 是專門對應至使用者 peterfitch 的資料庫全域使用者。

     ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
    

在此階段,IAM 使用者可以使用代理主機登入資料庫執行處理。舉例而言:

若要使用密碼驗證程式連線,請執行下列動作:

CONNECT peterfitch[hrapp]@connect_string
Enter password: password

使用記號連線:

CONNECT [hrapp]/@connect_string

驗證 IAM 使用者代理主機認證

您可以驗證密碼和權杖認證方法的 IAM 使用者代理主機組態。1。以具有 CREATE USERALTER USER 系統權限的使用者身分登入 Autonomous AI Database 執行處理。

  1. 以 IAM 使用者身分連線,然後執行 SHOW USERSELECT SYS_CONTEXT 命令。例如,假設當 IAM 使用者 peterfitch 代理資料庫使用者 hrapp 時,您要檢查其代理主機認證。您將需要使用此處顯示的不同認證方法類型來連線資料庫,但是您執行的命令輸出會與所有類型相同的。

    • 用於密碼認證:
CONNECT peterfitch[hrapp]/password!@connect_string
SHOW USER;

--The output should be USER is "HRAPP"
SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;

--The output should be "PASSWORD_GLOBAL"
SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;

--The output should be "PETERFITCH_SCHEMA"
SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;

--The output should be "HRAPP"

使用資料庫連結搭配 IAM 認證的使用者

您可以使用資料庫連結,以 Oracle Cloud Infrastructure IAM 使用者身分從一個自治式 AI 資料庫執行處理連線至另一個執行處理。

您可以使用連線的使用者或固定使用者資料庫連結,以 Oracle Cloud Infrastructure IAM 使用者身分連線至自治式 AI 資料庫。

注意:以 Oracle Cloud Infrastructure IAM 使用者身分連線至自治式 AI 資料庫時,不支援目前的使用者資料庫連結。

停用自治式 AI 資料庫上的身分識別與存取管理 (IAM) 認證

描述停用自治式 AI 資料庫之 IAM 外部認證使用者存取的步驟。

您可以使用 ALTER SYSTEM 命令停用自治式 AI 資料庫執行處理的 IAM 使用者存取,如下所示:

ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

如果您也想要更新對 IAM 資源 (即自治式容器資料庫或自治式 AI 資料庫) 的存取,您可能需要移除或修改 IAM 群組,以及設定為允許從這些資源存取 IAM 的原則。

使用自治式 AI 資料庫工具搭配身分識別與存取管理 (IAM) 認證的注意事項

提供使用啟用 IAM 認證之自治式 AI 資料庫工具的注意事項。