注意:

使用 Microsoft Entra ID 验证 Oracle Database 23ai

简介

Oracle Database 可以与 Microsoft Entra ID(以前称为 Microsoft Azure Active Directory)集成,以实现对数据库的安全、无密码访问。通过此设置,用户和服务可以使用其 Microsoft Entra ID 凭据通过单点登录 (SSO) 连接到数据库。

验证通过 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 验证库 (MSAL) 等库检索令牌,并将其保存在指定的文件位置中。稍后,SQL*Plus 在建立连接时会引用此标记。

使用 sqlplus 的实体用户验证流

注意:本教程使用 Python 脚本,利用 MSAL 获取安全令牌。有关更多信息,请参见 Overview of the Microsoft Authentication Library (MSAL)

本教程将指导您为 Oracle Base Database 23ai 配置 Microsoft Entra ID 验证,包括 TLS 设置。请参阅特定于您的数据库类型的文档:内部部署、Exadata、DBaaS 或自治。请注意,为 Autonomous Database 预配置了 TLS,因此您可以跳过该步骤。

目标读者

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

目标

先决条件

任务 1:为 Oracle Database 23ai 设置 TLS

任务 1.1:为 TLS 配置准备操作系统 (Operating System,OS)

  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. 验证 wallet 根目录。

    SQL> show parameter wallet_root;
    

    输出样例:

    NAME           TYPE      VALUE
    ----------     ------    ----------------------------------------------------
    wallet_root    string    /opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad
    
  5. 检查可插入数据库 (Pluggable Database,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. 为 wallet 和证书创建本地目录。

    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/rootCA
    
    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/db_wallet
    
  7. 使用 PDB GUID 在 wallet 根路径下创建数据库 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 Wallet 和证书

  1. 创建和配置根 Wallet。

    1. 创建根 wallet。

      [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 wallet 创建自签名证书。

      [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 可信证书以用于创建数据库 wallet。

      [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. 创建和配置服务器(数据库)wallet。

    1. 创建数据库 wallet。

      [oracle@db23aigrid ~]$ orapki wallet create -wallet ${DB_TLS_DIR} -pwd ${DBUSR_PWD} -auto_login
      
    2. 将可信根证书添加到 wallet(从证书管理员获取此证书)。

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -trusted_cert -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
    3. 在 wallet 中创建私有密钥和证书请求。

      [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. 显示 Wallet 的内容, Requested Certificates 下将显示一个条目。

      orapki wallet display -wallet ${DB_TLS_DIR}
      
    6. 查看证书签名请求 (certificate signing request,CSR) 文件的内容。

      cat ${DB_TLS_DIR}/db23gridpdb.csr
      
  3. 对服务器证书进行签名并导入。

    1. 使用自签名根 Wallet 对 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. 将签名数据库服务器用户证书导入到数据库 wallet。

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -user_cert -cert ${DB_TLS_DIR}/db23gridpdb-signed.crt -pwd ${DBUSR_PWD}
      
    4. 显示 Wallet 的内容,确保数据库服务器用户证书现在显示在用户证书下。将用于数据库服务器和监听程序的 wallet 现在已准备好部署以供使用。

      orapki wallet display -wallet ${DB_TLS_DIR}
      
  4. 部署 wallet 文件。

    1. 复制数据库服务器 wallet 文件。

      [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:为 TLS 通信配置 Oracle

  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. 从数据库服务器复制证书和 wallet 文件。您可以使用任何首选的文件传输工具将这些文件从数据库服务器移动到客户机。

    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. 将证书和 wallet 文件从数据库服务器传输到客户端实例。

    [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. Registered App 下,单击 Expose an API

  7. 单击应用程序 ID URI 旁边的添加保存。将其他值保留为默认值。

  8. 单击添加范围并输入以下信息。

    • 范围名称:输入 session:scope:connect

    • 谁可以同意?:输入管理员和用户

    • 管理同意显示名称:选择连接到数据库

    • 管理同意说明:选择连接到数据库

    • 用户同意显示名称:选择连接到数据库

    • 用户同意说明:选择连接到数据库

    • 状态:选择已启用

    单击添加范围。添加后,请确保复制 Scope 的值。

    公开 API

  9. 令牌配置下,将 Claim 添加为 upn ,将 Token type 添加为 Access

    注:在启用 Microsoft Entra ID v2 标记时,这是必需的。有关 v2 标记的更多信息,请参见 Enabling Microsoft Entra ID v2 Access Tokens

    您可能还需要更改 Microsoft Entra ID 中的应用程序清单以获取 v2 标记。

    添加追加索赔

  10. 应用程序角色下,添加以下应用程序角色。

    添加应用程序角色

  11. 概述中,复制应用程序 ID URI目录(租户)ID应用程序(客户端)ID

  12. 导航到主页企业应用程序BaseDB 服务器,然后单击添加用户/组以分配用户。

  13. 用户下,选择您的用户。生成访问令牌时,此分配的用户将用于单点登录。

  14. 选择角色下,选择 pdb.users ,单击选择分配

  15. 为同一用户重复步骤 13 和 14 并分配 dba.role

任务 2.2:在 Microsoft Azure 中注册数据库客户端

  1. 使用以下信息注册数据库客户端应用程序。

    • 名称:输入 BaseDB-Client

    • 支持的帐户类型:选择仅限此组织目录中的帐户

    • 重定向 URI:输入 Public client/native - <http://localhost>

  2. 管理下,单击 API 权限添加权限。选择我的组织使用的 APIBaseDB-Server委派权限权限作为 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 代码中,将 scope 的值替换为任务 2.1.8 中复制的值。同样,使用任务 2.2.3 中的值更新 client_idtenant_id 的值。

  3. 使用以下命令运行 Python 代码。

    python ./get-token.py
    
  4. 如果所有内容都配置正确,则应触发浏览器重定向到 Microsoft Azure 门户进行用户验证。验证时,将在运行 Python 命令的目录中生成令牌文件,该目录包含访问令牌。还会在终端窗口中输出 Access token(访问令牌)Refresh token(刷新令牌)

  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. 运行以下查询以验证应用程序角色。

      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 帮助中心