使用脚本自动设置基于角色的访问控制

使用 Oracle Cloud Infrastructure 中的脚本自动配置 Role-Based Access Control (RBAC) 以进行 IAM 验证。

您可以在 Cloud Shell 中运行该脚本以快速生成 IAM 连接文件。此自动化过程可显著缩短执行详细 RBAC 配置所需的时间。管理员用户生成 Connections 文件后,可以在整个组织中共享该文件,以允许从电子表格插件登录到数据库。

以下部分介绍如何:

  • 使用脚本生成连接文件

  • 下载连接文件

  • 允许访问域用户

先决条件

要将脚本用于 RBAC 配置,您必须具有:

  • Oracle Cloud Infrastructure 中的管理员账户

  • IAM 域

  • 自治 AI 数据库实例和方案

使用脚本生成连接文件

注意:

尽管脚本会自动执行配置任务,但它是一个交互式脚本,需要用户输入才能继续。

登录到 Oracle Cloud Infrastructure 控制台(如果尚未登录),并执行以下操作。

  1. 从区域旁边的“Developer Tools(开发人员工具)”图标中,打开 Cloud Shell 并运行终端窗口中的脚本文件。

    adb-create-cred.sh
  2. 该脚本将发现您的 Oracle 云账户是否具有现有的 API 密钥和指纹。如果未找到,脚本将为您创建密钥对。

    You have an existing API Key and Fingerprint! Do you want to try to reuse them? (y/n): y

    y 可重用现有密钥。该脚本将在 SQL 和 JSON 文件中创建您的本机身份证明。如果要生成新的 API 密钥对,请按 n

  3. 该脚本用于为数据库生成 AI 配置文件。

    Proceed to generate the AI Profile script? (y/n): n

    在此示例中,按 n 以继续而不使用 AI 配置文件。

  4. 电子表格插件生成 IAM 连接

    Proceed to generate the Spreadsheet add-ins IAM connection? (y/n): y

    y 继续。

  5. 选择具有要允许连接到数据库实例的用户的域。在可用域中输入对应的编号。

    Select a domain (1-3):
    该脚本创建以下项:
    • 名为 Spreadsheet Add-ins RBAC 的用户定制属性

    • 一个名为电子表格插件的域集成应用程序

    • JWT 自定义声明

    该脚本还会生成包含 JWT 概要文件信息的 PL/SQL 脚本 create_jwt_profile.sql

    注意:

    您可以重用现有用户属性和自定义声明,或使用脚本创建新声明。如果集成应用程序已存在,则可以创建新应用程序,但该应用程序使用的所有旧连接将变为无效。

  6. Autonomous AI Database 中为所需的方案运行身份证明脚本。

    Proceed to run the Credential Scripts on your Autonomous Database? (y/n): y

    y 继续。

  7. 选择方案所在的区间和数据库。

    Select the number pertaining to your Compartment:
    ...
    Select the number pertaining to your Autonomous Database:
  8. 如果需要,您可以使用现有的云 Wallet 或创建新 Wallet。如果脚本发现现有 Cloud Wallet,则会提示您是否要重用它。

    You have an existing Wallet File for [DB_NAME]. Do you want to reuse it? (y/n):

    如果钱包不存在,则可以设置新钱包。

  9. 指定要允许 RBAC 连接的方案的登录身份证明。

    Enter Autonomous Database username (ADMIN):
    Enter Autonomous Database password:
    该脚本运行包含以前创建的 JWT 配置文件信息的 SQL 文件,并在主文件夹中以 JSON 格式生成 IAM Connections 文件。
    Spreadsheet connection file: [$HOME/iam_connection_[DB_NAME]_[schema].json] created.

    注意:

    您可以复制 Connections 文件名(不包括 $HOME/ 部分),并在下载文件时使用相同的名称。如果脚本仍在运行,则使用 Ctrl + C 复制可能会强制停止或中断脚本。

  10. 最后,脚本会提示您是否要重复这些步骤并为其他数据库创建连接文件或退出脚本。因此,您可以为多个方案设置域用户访问权限。

下载连接文件

  1. 在 Cloud Shell 窗口中,单击齿轮图标以打开“Cloud Shell”菜单,然后单击下载

  2. 您可以粘贴先前复制的相同文件名,或者为 JSON 格式的连接文件指定新名称。

  3. 单击消息窗口中的下载以下载连接文件。

您可以使用 Spreadsheet Add-ins 中的 Connections 文件连接到数据库并将其与其他用户共享。

允许访问域用户

登录到 Oracle Cloud Infrastructure 控制台(如果尚未登录),并执行以下操作。

  1. 单击汉堡菜单,然后转至身份和安全,然后选择

  2. Name(名称)下,单击为其创建 Connections(连接)文件的域,例如 Default(默认)

  3. 转到 User Management 选项卡,然后单击要允许访问的用户名。

  4. 单击编辑用户可修改用户信息。

  5. 向下滚动到其他信息部分。在 Spreadsheet add-ins RBAC 字段中,输入 SQL Developer

  6. 单击保存更改以将角色添加到用户。

从 ORDS 26.2 开始,默认情况下禁用 ORDS 角色。要使用 ORDS 角色,必须启用该角色。例如:

BEGIN
    ords.set_property(
      p_key   => 'security.jwt.profile.allowed.roles',
      p_value => 'SQL Developer'
    );
    COMMIT;
  END;
/

有关 ORDS 用户角色的更多信息,请参阅关于 Oracle REST Data Services 用户角色