使用 Kerberos 验证自治 AI 数据库用户

您可以将专用 Exadata 基础结构上的自治 AI 数据库配置为使用 Kerberos 网络验证协议来验证数据库用户。Kerberos 是一种强大的网络验证协议。它使用密钥加密通过提供用户到服务器验证来启用强验证。

Kerberos 验证系统的组件

概述了 Kerberos 验证系统。

服务主体组件 自治 AI 数据库的价值
kinstance

可以从 V$PDBSCLOUD_IDENTITY 列中的属性 PUBLIC_DOMAIN_NAME 获取此值。此值不同于专用端点上数据库的完全限定域名 (Fully Qualified Domain Name,FQDN)。

使用以下查询获取 kinstance

sql SELECT json_value(cloud_identity, '$.PUBLIC_DOMAIN_NAME') "KINSTANCE" FROM v$pdbs;

注意:这将是 TNS 连接字符串中找到的 host 参数的值。

kservice

在自治 AI 数据库中,您可以选择 kservice 值:

  • 使用数据库 GUID:如果未提供带 DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION 的 Kerberos 服务名称,则使用的默认服务名称是自治 AI 数据库实例的 GUID。在这种情况下,在创建密钥表文件时,请使用 GUID 作为服务名称的值。

    由于在默认情况下,密钥表文件使用的是 GUID(特定于实例)的服务名称,因此在使用默认服务名称时,必须为每个自治 AI 数据库实例生成不同的密钥表文件。

    使用以下命令获取 GUID(大小写很重要):

    sql SELECT GUID FROM v$pdbs;

  • 使用定制名称:如果要在多个自治 AI 数据库实例上使用相同的密钥表文件,请设置服务名称。使用定制名称时,无需为每个自治 AI 数据库实例创建和上载不同的密钥表文件。使用定制名称时,必须使用 DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION 指定 params kerberos_service_name 参数。将 GUID 用于服务名称时,不需要指定此参数。

在自治 AI 数据库实例上启用 Kerberos 后,使用以下查询查看 Kerberos 服务名称:

sql SELECT SYS_CONTEXT('USERENV', 'KERBEROS_SERVICE_NAME') FROM DUAL;

REALM KDC 支持的任何领域。REALM 必须始终为大写。

要为自治 AI 数据库启用 Kerberos 验证,必须使 Kerberos 配置文件 (krb.conf) 和服务密钥表文件 (v5srvtab) 保持就绪。有关这些文件和获取这些文件的步骤的更多信息,请参见 Configuring Kerberos Authentication

关于自治 AI 数据库上的 Kerberos 验证的注释

在专用 Exadata 基础结构上的自治 AI 数据库上继续进行 Kerberos 验证之前,请查看以下说明:

注:唯一的例外是在 CMU-AD 上配置 Kerberos 验证,以便为 Microsoft Active Directory 用户提供 CMU-AD Kerberos 验证。

在自治 AI 数据库上启用 Kerberos 验证

按照下面列出的步骤为专用 Exadata 基础结构上的自治 AI 数据库启用 Kerberos 验证:

有关对象存储的更多信息,请参见导航到 Oracle Cloud Infrastructure Object Storage and Create Bucket

有关更多信息,请参见 ENABLE_EXTERNAL_AUTHENTICATION Procedure

在自治 AI 数据库上禁用 Kerberos 验证

在数据库上启用任何其他外部验证方案之前,必须禁用运行 DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION 过程的 Kerberos 验证。

要运行此过程,您必须以 ADMIN 用户身份登录,或者对 DBMS_CLOUD_ADMIN 具有 EXECUTE 权限。

BEGIN
    DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/

有关更多信息,请参见 DISABLE_EXTERNAL_AUTHENTICATION Procedure

注:要为 Microsoft Active Directory 用户提供 CMU-AD Kerberos 验证,必须继续配置 CMU-AD 验证而不禁用 Kerberos 验证。