对自治 AI 数据库使用身份和访问管理 (Identity and Access Management,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 引入了 2021 年 11 月 8 日之后创建的新 OCI 租户。自治 AI 数据库支持默认和非默认身份域中的用户和组。

关于使用自治 AI 数据库进行身份和访问管理 (Identity and Access Management,IAM) 验证

Oracle Cloud Infrastructure IAM 与 Autonomous AI Database 的集成支持数据库密码验证和基于令牌的验证。有关在自治 AI 数据库上使用 IAM 用户的体系结构的完整详细信息,请参见 Authenticating and Authorizing IAM Users for Oracle Autonomous AI Databases

IAM 数据库密码验证

注:任何受支持的 12c 及更高版本的数据库客户端都可用于对自治 AI 数据库进行 IAM 数据库密码访问。

Oracle Cloud Infrastructure IAM 数据库密码允许 IAM 用户登录到自治 AI 数据库实例,因为 Oracle Database 用户通常会使用用户名和密码登录。用户输入其 IAM 用户名和 IAM 数据库密码。IAM 数据库密码是与 Oracle Cloud Infrastructure 控制台密码不同的密码。使用具有密码验证器的 IAM 用户,您可以使用任何受支持的数据库客户端登录到自治 AI 数据库。

基于身份和访问管理 (Identity and Access Management,IAM) SSO 标记的验证

数据库客户机可以通过多种方式获取 IAM 数据库令牌:

如果用户输入用户名/密码进行登录,则无论客户机的数据库令牌设置如何,数据库驱动程序都会使用密码验证器方法访问数据库。

自治 AI 数据库上的身份和访问管理 (Identity and Access Management,IAM) 验证的先决条件

在自治 AI 数据库上使用身份和访问管理 (Identity and Access Management,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 Procedure

  2. 按照以下页面中概述的步骤配置您选择的另一个外部验证方案:

  3. 重新启用 IAM 用户,以使用 Oracle Cloud Infrastructure (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 用户创建身份和访问管理 (Identity and Access Management,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 控制台中,单击 Identity & Security

    2. 身份和安全下,单击策略

    3. 要创建写入策略,请单击创建策略

    4. 在“创建策略”页中,输入“名称”和“说明”。

    5. 在“创建策略”页上,选择显示手动编辑器

       [Description of the illustration adb_iam_create_policy_manual.png](img_text/adb_iam_create_policy_manual.html)
      
    6. 使用策略构建器创建策略。

      例如,创建策略以允许 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 策略的详情,请参阅数据库安全指南中的创建 IAM 策略以授权使用令牌验证用户

    7. 单击创建

      有关策略的更多信息,请参见 Managing Policies

有关创建与自治 AI 数据库上的 IAM 用户一起使用的策略的说明:

在自治 AI 数据库上添加 IAM 用户

要添加 IAM 用户以允许访问自治 AI 数据库,请使用 CREATE USERALTER USER 语句(带有 IDENTIFIED GLOBALLY AS 子句)将数据库全局用户映射到 IAM 组或用户。

通过将 IAM 全局用户 (schemas) 映射到 IAM 用户(独占映射)或 IAM 组(共享方案映射),IAM 用户对自治 AI 数据库实例的授权可以发挥作用。

要对自治 AI 数据库实例上的 IAM 用户进行授权,请执行以下操作:

  1. 以 ADMIN 用户身份登录到已启用使用 IAM 的数据库(ADMIN 用户具有这些步骤所需的 CREATE USERALTER USER 系统权限)。

  2. 使用 CREATE USERALTER USER 语句在自治 AI 数据库用户 (schema) 之间创建映射,并包括 IDENTIFIED GLOBALLY AS 子句,以指定 IAM 组名称。

    使用以下语法将全局用户映射到 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 组或用户执行以下步骤。

注:IDENTIFIED GLOBALLY 的数据库用户可以像以前一样继续登录,即使启用了自治 AI 数据库进行 IAM 验证也是如此。

要将本地 IAM 用户独占映射到 Oracle Database Global 用户,请执行以下操作

  1. 以 ADMIN 用户身份登录到已启用使用 IAM 的数据库(ADMIN 用户具有这些步骤所需的 CREATE USERALTER USER 系统权限)。

  2. 使用 CREATE USERALTER USER 语句在自治 AI 数据库用户 (schema) 之间创建映射,并包括 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 数据库角色设置数据库授权,并包括 IDENTIFIED GLOBALLY AS 子句,以指定 IAM 组名称。

    使用以下语法将全局角色映射到 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 数据库密码

使用身份和访问管理 (Identity and Access Management,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 数据库令牌访问具有受支持客户端的 Autonomous AI Database 实例:

注:如果自治 AI 数据库实例处于受限模式,则只有具有 RESTRICTED SESSION 权限(例如 ADMIN)的用户才能连接到数据库。

关于使用 IAM 连接到专用 Exadata 基础结构实例上的自治 AI 数据库

IAM 用户可以使用 IAM 数据库密码验证器或 IAM 令牌连接到专用 Exadata 基础结构上的自治 AI 数据库实例。

使用 IAM 数据库密码验证程序与 Oracle Database 密码验证过程类似。但是,验证程序不是存储在专用 Exadata 基础结构上的自治 AI 数据库中的密码验证器(密码的加密散列),而是作为 Oracle Cloud Infrastructure (OCI) IAM 用户概要信息的一部分进行存储。

第二种连接方法(将 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 数据库。

使用令牌的客户端连接

对于对专用 Exadata 基础结构上的自治 AI 数据库的 IAM 令牌访问,客户端应用程序或工具会为 IAM 用户从 IAM 请求数据库令牌。

客户端应用程序将通过数据库客户端 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 Command Line Interface Quickstart 。)在 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:登录到云 shell 时,会自动生成委派令牌并将其放置在 /etc 目录中。要获取此令牌,请在 Cloud shell 中执行以下命令:

        oci iam db-token get
        
      • 使用 OCI 命令行界面检索实例标记:

        oci iam db-token get --auth instance_principal
        
    3. 还可以将数据库客户机配置为使用 IAM 用户名和 IAM 数据库密码检索数据库令牌。

      有关更多信息,请参见 Client Connections That Use a Token Request by an IAM User Name and Database Password

    有关详细信息,请参阅所需的密钥和 OCID

  4. 确保使用 Oracle Database 客户端发行版 19c 和 21c 的最新发行版更新。

    此配置仅适用于 Oracle Database 客户机发行版 19c 或 21c。

  5. 按照现有过程从自治 AI 数据库下载 wallet,然后按照配置 wallet 以与 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 设置。例如,对于连接字符串,假定令牌位于缺省位置(对于 Linux 为 ~/.oci/db-token):

     (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

使用实例主体通过身份和访问管理 (Identity and Access Management,IAM) 验证访问自治 AI 数据库

ADMIN 用户在 Autonomous AI Database 上启用 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 系统权限的用户身份登录到自治 AI 数据库实例。

  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 数据库实例连接到另一个自治 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;

如果您还想从资源(即自治容器数据库或自治 AI 数据库)更新对 IAM 的访问权限,则可能需要删除或修改 IAM 组以及您设置的策略,以允许从这些资源访问 IAM。

有关将自治 AI 数据库工具与身份和访问管理 (Identity and Access Management,IAM) 验证结合使用的说明

提供启用了 IAM 验证的自治 AI 数据库工具的使用说明。