注意:

使用 Oracle Cloud Infrastructure Identity and Access Management Authentication 和 Oracle Autonomous Database

简介

Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 数据库密码允许 IAM 用户以 Oracle Database 用户通常使用用户名和密码登录到 Oracle Autonomous Database 实例。用户输入其 IAM 用户名和 IAM 数据库密码。IAM 数据库密码是与 Oracle Cloud Infrastructure (OCI) 控制台密码不同的密码。使用带有密码验证器的 IAM 用户,您可以使用任何受支持的数据库客户端登录到 Autonomous Database。

OCI IAM 旨在确保只有合适的人员才能访问组织的数据和资源。您可以将 Oracle Database 配置为使用 OCI IAM 验证和授权,以允许 IAM 用户使用 IAM 身份证明访问数据库。在 IAM 中集中管理用户和凭证可提高数据库用户的安全性、可管理性和用户体验。

目标读者

OCI IAM 专业人员和管理员。

目标

配置 Oracle Autonomous Database 以使用 OCI IAM 验证和授权,允许 IAM 用户使用 IAM 身份证明访问 Oracle Autonomous Database。

先决条件

任务 1:创建数据库组、用户和策略

  1. 导航到身份和安全,然后单击创建组。提供以下详细信息以创建组:DB_AdminsDB_Users

    数据库创建组

    • 使用名称 DB_Admins说明 DB_Admins 创建第一个组,然后单击创建

      数据库创建组

    • 使用名称 DB_Users说明 DB_Users 创建另一个组,然后单击创建

      数据库创建组

  2. 导航到身份策略并输入以下详细信息,然后单击创建策略

    • 名称:ADB-Access-Policy

    • 说明:ADB-Access-Policy

    • 区间:确保选择了正确的区间

    • 策略生成器:选择显示手动编辑器选项

      allow group DB_Users, DB_Admins to use database-connections in compartment <compartment-name>
      
      allow group DB_Users, DB_Admins to use autonomous-database-family in compartment <compartment-name>
      

      数据库创建策略

  3. 导航到身份用户,然后输入以下详细信息以创建两个测试用户 - testuser1testuser2,然后单击创建

    • 选择用户类型:IAM 用户

    • 用户名:testuser1

    • 说明:testuser1

    • 电子邮件:testuser1@demo.com

    • 确认邮箱:testuser1@demo.com

      数据库创建用户

  4. testuser1 添加到 DB_Users 组

    数据库创建用户

  5. 重复步骤 3 以设置 testuser2

    • 选择用户类型:IAM 用户

    • 用户名:testuser2

    • 说明:testuser2

    • 电子邮件:testuser2@demo.com

    • 确认邮箱:testuser2@demo.com

      数据库创建用户

  6. testuser2 添加到 DB_Admins 和 DB_Users 组

    数据库创建用户

    数据库创建用户

任务 2:为用户设置 IAM 数据库密码

  1. 定位至身份用户

  2. 选择 testuser1。数据库用户名是 testuser1。选择数据库密码并输入以下详细信息,然后单击创建数据库密码

    • 说明:password

    • 密码: password

    • 确认口令: password

      设置 IAM 数据库密码

  3. 选择 testuser2。数据库用户名是 testuser2。选择数据库密码并输入下面给出的以下详细信息,然后单击创建数据库密码

    • 说明:password

    • 密码: password

    • 确认口令: password

    现在,您已成功创建 testuser1testuser2 的数据库密码。

任务 3:为创建 DB_Users 和 DB_Admins 组的全局用户方案映射和角色映射配置数据库

  1. 在 OCI 中,导航到 Autonomous DatabaseDatabase ActionsSQL 。将创建 SQL 会话。

    自治数据库

    自治数据库

  2. 使用以下查询验证 Autonomous Database 的当前外部身份提供者

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

    验证外部身份提供方

    注意:它当前设置为

  3. 使用以下查询将 OCI IAM 配置为 Autonomous Database 的外部身份提供者

    EXEC DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION('OCI_IAM');
    

    将 OCI IAM 设置为身份提供者

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

    验证外部身份提供方

    注意:它当前设置为 OCI_IAM

  4. 配置数据库,以便为 SQL 中的 DB_Users 和 DB_Admins 组创建全局用户方案映射和角色映射。

    CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=DB_Users';
    
    CREATE ROLE global_role IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=DB_Admins';
    
    grant CREATE SESSION to global_user;
    
    grant DWROLE to global_role;
    
    grant CREATE SESSION to global_role;
    

    配置数据库方案角色映射

任务 4:下载 SQL*Plus 数据库客户端

  1. 确保根据操作系统安装 Oracle Database 客户端发行版 19c - 19.20.0 的最新发行版更新。在本教程中,我们将使用 Windows OS

  2. 下载 SQL*Plus DB 客户端,请参阅安装 SQL*Plus DB 客户端

任务 5:下载 Wallet

  1. 导航到 Oracle CloudDatabasesAutonomous Database ,然后选择预配的 Autonomous Database,然后单击数据库连接

    下载 Wallet

  2. 输入密码并下载 wallet。

    下载 Wallet

任务 6:更新 sqlnet.ora 中的 Wallet 位置并设置 TNS 管理变量

  1. sqlnet.ora 中更新下载的 wallet 位置路径。

    下载 Wallet

    下载 Wallet

  2. 使用 wallet 位置路径设置环境变量 TNS_Admin。

    下载 Wallet

任务 7:使用 PowerShell 连接到数据库

  1. 打开 Windows PowerShell 并输入以下查询。

    sqlplus /nolog
    
  2. 演示 Administrator UserLocal Authentication(本地验证)

    conn admin/password@adwtest_high
    
    exit
    

    以管理员用户身份连接

    现在,您已成功以管理员身份连接到 Autonomous Database

  3. 演示 testuser1testuser2基于口令的验证,并验证数据库中的用户和角色。执行以下 SQL 查询以 testuser2 身份连接到 Autonomous Database。

    conn testuser1/password@adwtest_high
    

    已以 testuser1 身份连接。逐个执行下面的 SQL 查询并观察输出以验证用户和角色。

    SELECT SYS_CONTEXT ('USERENV','CURRENT_USER') FROM DUAL;
    
    SELECT SYS_CONTEXT ('USERENV','AUTHENTICATED_IDENTITY') FROM DUAL;
    
    SELECT SYS_CONTEXT ('USERENV','ENTERPRISE_IDENTITY') FROM DUAL;
    
    SELECT * FROM SESSION_ROLES;
    
    exit
    

    连接为 testuser1

    现在,您已成功将 Autonomous Database 的连接测试为 testuser1

  4. 继续执行下面的 SQL 查询,以 testuser2 身份连接到 Autonomous Database

    conn testuser2/password@adwtest_high
    

    已以 testuser2 身份连接。现在,逐个执行下面的 SQL 查询并观察输出以验证用户和角色。

    SELECT SYS_CONTEXT ('USERENV','CURRENT_USER') FROM DUAL;
    
    SELECT SYS_CONTEXT ('USERENV','AUTHENTICATED_IDENTITY') FROM DUAL;
    
    SELECT SYS_CONTEXT ('USERENV','ENTERPRISE_IDENTITY') FROM DUAL;
    
    SELECT * FROM SESSION_ROLES;
    
    exit
    

    连接为 testuser2

    现在,您已成功将 Autonomous Database 的连接测试为 testuser2

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心