附註:

使用 Microsoft Entra ID 認證 Oracle Database 23ai

簡介

Oracle Database 可以與 Microsoft Entra ID (前身為 Microsoft Azure Active Directory) 整合,以啟用對資料庫的安全無密碼存取。透過此設定,使用者和服務可以透過 Single Sign-On (SSO) 使用其 Microsoft Entra ID 證明資料連線至資料庫。

認證會透過 Microsoft Entra ID 所發出的 OAuth2 存取權杖進行處理。此權杖 (包括使用者的識別和存取詳細資訊) 會傳送至 Oracle Database。資料庫從屬端會先驗證權杖的格式和過期後,再允許存取,確保連線程序安全且精簡。

我們為什麼需要這個?

隨著組織越來越重視安全性,管理對敏感資料的存取變得至關重要。Oracle Database 與 Microsoft Entra ID 合作,允許不使用密碼進行安全驗證,從而利用現代化的身分識別管理系統實現無縫、可擴展和強大的存取控制。此整合支援廣泛的 Oracle 部署,包括 Oracle Autonomous Database、Oracle Exadata 和 Oracle Base Database Service,可確保在不同環境中一致且安全的存取。

資料庫從屬端和工具

支援 Microsoft Entra ID 權杖的應用程式和工具可以透過 Microsoft Entra ID 直接認證使用者,然後透過從屬端 API 將資料庫存取權杖傳送給 Oracle Database 執行處理。您可以將現有的資料庫工具 (例如 SQL*Plus) 設定為使用儲存在檔案中的 Microsoft Entra ID 記號。您可以使用協助程式工具 (例如 Microsoft PowerShell、Azure CLI 或 Microsoft Authentication Library (MSAL) 等程式庫) 來擷取權杖,並儲存在指定的檔案位置。之後,SQL*Plus 會在建立連線時參照此記號。

使用 sqlplus 的 Entra 使用者認證流程

注意:此教學課程使用運用 MSAL 取得安全記號的 Python 命令檔。如需詳細資訊,請參閱Microsoft 認證程式庫簡介 (MSAL)

本教學課程將引導您完成設定 Oracle Base Database 23ai (包括 TLS 設定) 的 Microsoft Entra ID 認證。請參閱內部部署、Exadata、DBaaS 或自治式資料庫類型的特定文件。請注意,已為 Autonomous Database 預先設定 TLS,因此您可以略過該步驟。

適用對象

Oracle Database 管理員和 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 管理員。

目標

必要條件

作業 1:設定 Oracle Database 23ai 的 TLS

作業 1.1:準備作業系統 (OS) 以進行 TLS 組態

  1. 登入資料庫伺服器並切換至 root 使用者以設定目錄。

    [opc@db23aigrid ~]$ sudo su -
    
    [root@db23aigrid ~]# mkdir -p /etc/ORACLE/WALLETS/oracle
    
    [root@db23aigrid ~]# cd /etc/
    
    [root@db23aigrid etc]# chown -R oracle:oinstall ORACLE/
    
  2. oracle 使用者身分取得主機名稱。

    [root@db23aigrid etc]# su - oracle
    
    [oracle@db23aigrid admin]$ hostname -f
    

    範例輸出:

    db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com
    
  3. 連線至該資料庫。

    [oracle@db23aigrid admin]$ sqlplus "/as sysdba"
    
  4. 請檢查公事包根目錄。

    SQL> show parameter wallet_root;
    

    範例輸出:

    NAME           TYPE      VALUE
    ----------     ------    ----------------------------------------------------
    wallet_root    string    /opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad
    
  5. 檢查可插拔資料庫 (PDB) 名稱和 GUID。

    SQL> show pdbs;
    

    範例輸出:

    CON_ID   CON_NAME      OPEN MODE      RESTRICTED
    -----    --------      ---------      ----------
    2        PDB$SEED      READ ONLY      NO
    
    3        DB23GRIDPDB   READ WRITE     NO
    
    SQL> select guid from v$containers where name = 'DB23GRIDPDB';
    

    範例輸出:

    GUID
    -- -----------------------------
    32435DD0A1EC55xxx0639400000A7225
    
  6. 建立公事包和憑證的本機目錄。

    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/rootCA
    
    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/db_wallet
    
  7. 使用 PDB GUID,在公事包根路徑底下建立資料庫 TLS 目錄。

    [oracle@db23aigrid ~]$ mkdir -p /opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad/32435DDxxxxxx7E0639400000A7225/tls
    
  8. 使用 TLS 相關環境變數更新 .bashrc

    [oracle@db23aigrid ~]$ vi ~/.bashrc
    

    新增下列項目,然後根據您的環境調整值。

    export DBUSR_SYSTEM=system
    export DBUSR_PWD=QAZxswedc123##     # Wallet and Database Administrator (sys) password
    
    export ORA_TLS_DIR=/etc/ORACLE/WALLETS/oracle
    export TLS_DIR=/opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad/32435DD0A1EC55E7E0639400000A7225/tls
    export ROOT_TLS_DIR=/home/oracle/wallet_tls/certificates/rootCA
    export DB_TLS_DIR=/home/oracle/wallet_tls/certificates/db_wallet
    
    export TLS_DN=CN=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com,O=oracle,L=Austin,ST=Texas,C=US
    export TLS_SAN=DNS:db23aigrid,DNS:db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com,
    IPV4Address:143.47.117.99
    
  9. 套用變更.

    [oracle@db23aigrid ~]$ . ~/.bashrc
    

作業 1.2:設定 TLS 公事包和憑證

  1. 建立並設定根公事包。

    1. 建立公事包根目錄。

      [oracle@db23aigrid ~]$ orapki wallet create -wallet ${ROOT_TLS_DIR} -pwd ${DBUSR_PWD} -auto_login
      
    2. 檢視公事包的內容,它應該是空的。

      [oracle@db23aigrid ~]$ orapki wallet display -wallet ${ROOT_TLS_DIR}
      
    3. 建立根 CA 公事包的自行簽署憑證。

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -keysize 2048 -sign_alg sha256 -self_signed -validity 3652 -pwd ${DBUSR_PWD} -addext_san $TLS_SAN
      
    4. 該目錄現在應有 cwallet.ssoewallet.p12 檔案。

      ls -l ${ROOT_TLS_DIR}
      
    5. 檢視公事包的內容,它應該要有使用者和信任憑證。

      orapki wallet display -wallet ${ROOT_TLS_DIR}
      
    6. 匯出用於建立資料庫公事包的根 CA 信任憑證。

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
    7. 檢視 rootCA.crt 檔案的內容。

      cat ${ROOT_TLS_DIR}/rootCA.crt
      
  2. 建立並設定伺服器 (資料庫) 公事包。

    1. 建立資料庫公事包。

      [oracle@db23aigrid ~]$ orapki wallet create -wallet ${DB_TLS_DIR} -pwd ${DBUSR_PWD} -auto_login
      
    2. 將受信任的根憑證新增至公事包 (從您的憑證管理員取得此憑證)。

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -trusted_cert -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
    3. 在公事包中建立私密金鑰和憑證要求。

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -keysize 2048 -dn $TLS_DN -pwd ${DBUSR_PWD}-addext_san $TLS_SAN
      
    4. 匯出憑證要求以簽署憑證。

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${DB_TLS_DIR} -dn $TLS_DN -request ${DB_TLS_DIR}/db23gridpdb.csr -pwd ${DBUSR_PWD}
      
    5. 顯示公事包的內容,要求的憑證底下將會有一個項目。

      orapki wallet display -wallet ${DB_TLS_DIR}
      
    6. 檢視憑證簽署要求 (CSR) 檔案的內容。

      cat ${DB_TLS_DIR}/db23gridpdb.csr
      
  3. 簽署並匯入伺服器憑證。

    1. 使用自行簽署的根公事包簽署 CSR。

      [oracle@db23aigrid ~]$ orapki cert create -wallet ${ROOT_TLS_DIR} -request ${DB_TLS_DIR}/db23gridpdb.csr -cert ${DB_TLS_DIR}/db23gridpdb-signed.crt -validity 3652 -sign_alg sha256 -pwd ${DBUSR_PWD}
      
    2. 檢視簽署的伺服器使用者憑證。

      cat ${DB_TLS_DIR}/db23gridpdb-signed.crt
      
    3. 將簽署的資料庫伺服器使用者憑證匯入資料庫公事包。

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -user_cert -cert ${DB_TLS_DIR}/db23gridpdb-signed.crt -pwd ${DBUSR_PWD}
      
    4. 顯示公事包的內容,請確定資料庫伺服器使用者憑證現在顯示在使用者憑證底下。您將用於資料庫伺服器和監聽器的公事包現在已可供部署以供使用。

      orapki wallet display -wallet ${DB_TLS_DIR}
      
  4. 部署公事包檔案。

    1. 複製資料庫伺服器公事包檔案。

      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/ewallet.p12 ${TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/cwallet.sso ${TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/ewallet.p12 ${ORA_TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/cwallet.sso ${ORA_TLS_DIR}
      
    2. 匯出憑證。

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
  5. root 使用者的身分,信任整個根 CA 系統。

    1. 執行 [root@db23ailvm etc]# cp -v /home/oracle/wallet_tls/certificates/rootCA/rootCA.crt /etc/pki/catrust/source/anchors/ 指令。

    2. 執行 [root@db23ailvm etc]# update-ca-trust extract 指令。

    3. 設定適當的檔案權限。

      cd /etc/ORACLE/WALLETS/
      
      chmod -R 755 oracle/
      

作業 1.3:設定 Oracle 的 TLS 通訊

  1. 編輯單向 TLS 的 sqlnet.ora 並附加下列行。

    [oracle@db23aigrid ~]$ cd $ORACLE_HOME/network/admin
    
    [oracle@db23aigrid ~]$ vi sqlnet.ora
    
    SSL_CLIENT_AUTHENTICATION = FALSE
    
  2. 編輯 tnsnames.ora,並確定已為 PDB 資料庫新增 TCPTCPS 的項目。

    根據您的環境調整值:

    [oracle@db23aigrid ~]$ cd $ORACLE_HOME/network/admin
    
    [oracle@db23aigrid ~]$ vi tnsnames.ora
    
    DB23GRIDPDB=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=db23aigrid)(PORT=1521)))
    (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    
    DB23GRIDPDB_TLS=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCPS)(HOST=db23aigrid)(PORT=1522)))
    (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    

作業 1.4:使用 TLS 設定監聽器

作業 1.5:驗證 TLS 連線

  1. 測試 TCP (非 TLS)。

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
    NETWORK_PROTOCOL
    
    Tcp
    
  2. 測試 TCPS (啟用 TLS)

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB_TLS
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
    NETWORK_PROTOCOL
    
    Tcps
    

作業 1.6:設定 TLS 的從屬端主機

注意:此工作的先決條件。

請依照下列步驟設定用戶端主機:

  1. 從資料庫伺服器複製憑證和公事包檔案。您可以使用任何偏好的檔案傳輸工具,將這些檔案從資料庫伺服器移至用戶端。

    cd /home/oracle/wallet_tls/certificates/
    
    tar -cvf rootCA.tar rootCA
    
    chmod 755 rootCA.tar
    
    cp rootCA.tar /tmp/
    
  2. 設定用戶端目錄。

    [opc@bastion-server8-8 ~]$ sudo su - oracle
    
    [oracle@bastion-server8-8 ~]$ mkdir wallet_db23aigrid_tls
    
    [oracle@bastion-server8-8 ~]$ mkdir -p network/admin
    
    [oracle@bastion-server8-8 ~]$ export TNS_ADMIN=/home/oracle/network/admin
    
  3. 將憑證和公事包檔案從資料庫伺服器傳輸至從屬端執行處理。

    [oracle@bastion-server8-8 ~]$ cp rootCA.tar wallet_db23aigrid_tls /
    
    [oracle@bastion-server8-8 ~]$ cd wallet_db23aigrid_tls /
    
    [oracle@linuxclient23:~/wallet_db23aigrid_tls]$ cp /tmp/rootCA.tar
    
  4. 擷取憑證檔案。

    [oracle@linuxclient23:~/wallet_db23aigrid_tls]$ tar -xvf rootCA.tar
    
  5. 設定 tnsnames.ora

    [oracle@bastion-server8-8 ~]$ cd ~/network/admin
    
    [oracle@linuxclient23:~/instantclient_23_7/network/admin]$ vi tnsnames.ora
    
       DB23GRIDPDB=
       (DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
       (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=143.47.117.99)(PORT=1521)))
       (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    
       DB23GRIDPDB_TLS=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
       (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCPS)(HOST=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com)(PORT=
       1522)))
       (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com))
       (SECURITY = (SSL_SERVER_DN_MATCH=TRUE)))
    
  6. 設定 sqlnet.ora

    [oracle@linuxclient23:~/instantclient_23_7/network/admin]$ vi sqlnet.ora
    
       SSL_CLIENT_AUTHENTICATION = FALSE
       WALLET_LOCATION =
       (SOURCE =(METHOD = FILE)
       (METHOD_DATA =(DIRECTORY =/home/oracle/wallet_db23aigrid_tls/rootCA)))
    

作業 1.7:測試從屬端執行處理的連線

  1. 測試 TCP (非 TLS)。

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
      NETWORK_PROTOCOL
    
      Tcp
    
  2. 測試 TCPS (啟用 TLS)。

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB_TLS
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
      NETWORK_PROTOCOL
    
      Tcps
    

工作 2:設定 Microsoft Azure 和資料庫整合

作業 2.1:在 Microsoft Azure 中註冊資料庫伺服器

  1. 以具有 Microsoft Entra ID 權限的管理員身分登入 Microsoft Azure 入口網站以註冊應用程式。

  2. Azure Active 目錄管理中心頁面中,選取 Microsoft Entra ID

  3. 按一下應用程式註冊新註冊

  4. 請輸入下列資訊。

    • 名稱:輸入 BaseDB-Server

    • 誰可以使用此應用程式或存取此 API?:選取僅限此組織目錄中的帳戶

  5. 按一下註冊

  6. 已註冊的應用程式底下,按一下顯示 API

  7. 按一下應用程式 ID URI儲存旁邊的新增。保留其他值作為預設值。

  8. 按一下新增範圍,然後輸入下列資訊。

    • 範圍名稱:輸入 session:scope:connect

    • 誰可以同意?: 輸入管理員和使用者

    • 管理許可顯示名稱:選取連線至資料庫

    • 管理許可描述:選取連線至資料庫

    • 使用者同意顯示名稱:選取連線至資料庫

    • 使用者同意描述:選取連線至資料庫

    • 狀態:選取已啟用

    按一下新增範圍。新增之後,請務必複製範圍的值。

    公開 API

  9. 記號組態底下,將宣告新增為具有記號類型upn 作為存取

    注意:啟用 Microsoft Entra ID v2 記號時必須提供此資訊。如需有關 v2 記號的詳細資訊,請參閱啟用 Microsoft Entra ID v2 存取記號

    您可能也需要變更 Microsoft Entra ID 中的應用程式資訊清單,才能取得 v2 權杖。

    新增索賠

  10. 應用程式角色底下,新增下列應用程式角色。

    新增 App 角色

  11. 概觀中,複製應用程式 ID URI目錄 (租用戶) ID應用程式 (從屬端) ID

  12. 瀏覽至首頁企業應用程式BaseDB 伺服器,然後按一下新增使用者 / 群組來指派使用者。

  13. 使用者下,選取您的使用者。產生存取權杖時,此指定的使用者將用於單一登入。

  14. 選取角色下,選取 pdb.users ,按一下選取指派

  15. 為相同使用者重複步驟 13 與 14,並指派 dba.role

作業 2.2:在 Microsoft Azure 中註冊資料庫從屬端

  1. 請以下列資訊註冊資料庫從屬端 App。

    • 名稱:輸入 BaseDB-Client

    • 支援的帳戶類型:選取僅限此組織目錄中的帳戶

    • 重新導向 URI:輸入公用從屬端 / 原生 - <http://localhost>

  2. 管理底下,按一下 API 權限新增權限。選取我的組織使用的 APIBaseDB 伺服器委派權限權限作為 session:scope:connect ,然後按一下新增權限

  3. 概觀中,複製應用程式 ID URI目錄 (用戶) ID

作業 2.3:設定 Microsoft Azure 的資料庫伺服器

執行下列查詢以將 Microsoft Azure AD 設定為身分識別提供者,以及建立資料庫全域使用者和角色。

  1. 檢查 PDB 資料庫中目前的身分識別提供者。

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
  2. 將 Microsoft Azure 設定為身分識別提供者。

    ALTER SYSTEM SET IDENTITY_PROVIDER_TYPE=AZURE_AD SCOPE=BOTH;
    
  3. 驗證更新的身分識別提供者。

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
  4. 設定身分識別提供者組態。將 application_id_uritenant_idapp_id 取代為在任務 2.1.11 中複製的值。

    ALTER SYSTEM SET IDENTITY_PROVIDER_CONFIG =
    '{
       "application_id_uri": "api://b7ae5060-667c-47b7-83f8-71283df2a2f6" ,
       "tenant_id": "ef2b4271-9238-4dcd-8c56-d3e915e37c6f",
       "app_id": "b7ae5060-667c-47b7-83f8-71283df2a2f6"
    }' SCOPE=BOTH;
    
  5. 在資料庫中建立全域使用者與角色。

    CREATE USER allusers IDENTIFIED GLOBALLY AS 'AZURE_ROLE=pdb.users';
    CREATE USER hrapp IDENTIFIED GLOBALLY AS 'AZURE_ROLE=hr.app';
    CREATE ROLE dba_azure IDENTIFIED GLOBALLY AS 'AZURE_ROLE=dba.role';
    
  6. 將權限授予使用者和角色。

    GRANT CREATE SESSION TO allusers;
    GRANT CREATE SESSION TO hrapp;
    GRANT pdb_dba TO dba_azure;
    

作業 2.4:設定協助程式公用程式以產生 Microsoft Azure 存取權杖

在此工作中,我們將使用 Python 公用程式來產生將儲存在檔案中的存取權杖,之後又由 SQL*Plus 參照。此公用程式需要執行 MSAL 模組。

  1. 從此處儲存 Python 公用程式: Get-Token.py

  2. 在下列 Python 程式碼中,以「工作 2.1.8」中複製的值取代 scope 的值。同樣地,使用工作 2.2.3 的值更新 client_idtenant_id 的值。

  3. 使用下列指令執行 Python 程式碼。

    python ./get-token.py
    
  4. 如果所有項目都正確設定,這應該觸發瀏覽器重新導向至 Microsoft Azure 入口網站進行使用者認證。認證時,會在執行 Python 命令的目錄中產生一個包含存取權杖的權杖檔案。存取權杖重新整理權杖也將會列印在終端機視窗上。

  5. ( 選擇性 ),您可以瀏覽此處來驗證產生的記號:jwt.io ,然後將記號字串貼到編碼欄位中。解碼欄位會顯示記號字串的相關資訊。

作業 2.5:使用 SQL*PLUS 登入

  1. 使用 SQL*PLUS 測試 Microsoft Azure 記號登入。

    sqlplus /nolog
    
    conn /@(description= (retry_count=20) (retry_delay=3) (address= (protocol=tcps) (port=1522) (host=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com)) (connect_data=(service_name=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com))(security=(SSL_SERVER_DN_MATCH=TRUE)(TOKEN_AUTH=OAUTH)(TOKEN_LOCATION=/home/oracle)))
    
  2. 請檢查登入的使用者。

    注意:登入之後,您可以執行下列查詢來擷取使用者的階段作業特定資訊。

    • CURRENT_USER 變數會傳回作用中的目前使用者。
    • ALLUSERS 是透過 Microsoft Entra ID 應用程式角色指派的共用綱要使用者。
    • AUTHENTICATED_IDENTITY 代表來自 Microsoft Entra ID 的已認證使用者。
    • ENTERPRISE_IDENTITY 會從 Microsoft Entra ID 傳回已認證使用者的 GUID。
    • SESSION_ROLES 會傳回透過 Microsoft Entra ID 應用程式角色,以本機和全域對應授予的角色合併清單。
    1. 執行下列查詢以驗證目前的使用者。

      SELECT SYS_CONTEXT ('USERENV','CURRENT_USER') FROM DUAL;
      

      輸出:

      SYS_CONTEXT('USERENV','CURRENT_USER')
      
      
      ALLUSERS
      
    2. 執行下列查詢以驗證已認證的使用者。

      SELECT SYS_CONTEXT ('USERENV','AUTHENTICATED_IDENTITY') FROM DUAL;
      

      輸出:

      SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY')
      
      
      <anujtrip.ai@gmail.com>
      
    3. 請執行下列查詢來驗證已認證使用者的 GUID。

      SELECT SYS_CONTEXT ('USERENV','ENTERPRISE_IDENTITY') FROM DUAL;
      

      輸出:

      SYS_CONTEXT('USERENV','ENTERPRISE_IDENTITY')
      
      
      7eb35b90-dcxxx5-bc0b-48789368e9cf
      
    4. 執行下列查詢以驗證 App 角色。

      SELECT * FROM SESSION_ROLES;
      

      輸出:

      ROLE
      
      DBA_AZURE
      
      PDB_DBA
      
      CONNECT
      

接下來的步驟

已順利實行以 Microsoft Entra ID 為基礎的認證,您可以透過集中式識別治理來調整使用者角色和存取原則。您可以利用共用綱要使用者和角色的全域對應,簡化存取控制並降低管理複雜性。此外,監控使用者階段作業和存取模式是必要的,以增強安全性並確保遵守組織原則。您還應該考慮將此整合擴展到其他資料庫或應用程式,以保持整個企業的一致性識別管理。

認可

其他學習資源

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

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