使用专用 Exadata 基础结构上的 Autonomous Database 管理用户概要文件

您可以在 Autonomous Database 中创建和更改用户概要文件。创建或更改配置文件后,可以使用 CREATE USERALTER USER 指定配置文件子句。您还可以使用 Oracle Data Pump Import 从其他环境中导入现有用户概要文件。

注意:

Autonomous Database 对 profile 子句具有限制。有关 CREATE PROFILEALTER PROFILE 限制的信息,请参见 Limitations on the Use of SQL Commands

要在配置文件(包括 DEFAULT 配置文件)中添加、修改或删除口令参数,必须具有 ALTER PROFILE 系统权限。

  1. 添加或更改配置文件,因为 ADMIN 用户运行 CREATE PROFILEALTER PROFILE。例如:
    CREATE PROFILE new_profile
      LIMIT PASSWORD_REUSE_MAX 10
      PASSWORD_LOCK_TIME 5;

    如果您不是 ADMIN 用户,则必须具有 CREATE PROFILE 特权才能运行 CREATE PROFILE。如果运行 ALTER PROFILE,则必须具有 ALTER PROFILE 特权。

  2. 使用带有 CREATE USERALTER USER 命令的新配置文件或已更改的配置文件。例如:
    CREATE USER new_user IDENTIFIED BY password PROFILE new_profile;
    GRANT CREATE SESSION TO new_user;

这将使用配置文件 new_profile 和连接特权创建 new_usernew_user 现在可以连接到数据库并运行查询。要向用户授予其他权限,请参阅管理数据库用户权限

有关使用 CREATE PROFILE 的信息,请参见 Oracle Database 19c SQL Language Reference 中的 CREATE PROFILEOracle Database 23ai SQL Language Reference

您可以使用 Oracle Data Pump 导入 (impdp) 导入在其他环境中创建的现有概要文件。导入到 Autonomous Database 后,将保留与数据库用户的任何现有概要信息关联。从 Oracle Data Pump 导入创建的新用户尝试首次登录时,按如下方式处理登录:

  • 密码复杂性限制与 Autonomous Database 上任何用户的限制相同。
  • 如果用户的密码违反了密码复杂性要求,则该帐户将在 30 天宽限期内过期。在这种情况下,用户必须在宽限期结束之前更改其密码。

注意:

无法修改配置文件为 ORA_PROTECTED_PROFILE 的用户的配置文件分配。

创建或更改配置文件时,可以指定密码验证函数 (Password Verification Function,PVF) 来管理密码复杂性。有关详细信息,请参阅在 Autonomous Database 上管理密码复杂性

Autonomous Database 上管理密码复杂性

您可以创建密码验证函数 (Password Verify Function,PVF) 并将 PVF 与配置文件关联,以管理用户密码的复杂性。

注意:

用户指定的 PVF 的最小密码长度为 8 个字符,并且必须至少包含一个大写字母、一个小写字母和一个数字字符。DEFAULT 配置文件的最小密码长度为 12 个字符(DEFAULT 配置文件使用 CLOUD_VERIFY_FUNCTION PVF)。密码不能包含用户名。

Oracle 建议使用最少密码长度 12 个字符。如果定义配置文件的 PVF,并将最小密码长度设置为少于 12 个字符,则 Oracle Database Security Assessment Tool (DBSAT) 和 Qualys 等工具将此报告为数据库安全风险。

例如,要为配置文件指定 PVF,请使用以下命令:

CREATE PROFILE example_profile LIMIT PASSWORD_VERIFY_FUNCTION ADMIN.EXAMPLE_PVF

如果配置文件是由 ADMIN 用户以外的任何用户创建或更改的,则必须对 PVF 授予 EXECUTE 特权。如果创建 PVF 且口令检查失败,则数据库将报告 ORA-28219 错误。

您可以从以下项之一指定 Oracle 提供的 PVF:

  • CLOUD_VERIFY_FUNCTION(这是 Autonomous Database 的默认密码验证功能):

    此函数在用户创建或修改密码时检查以下要求:

    • 密码长度必须介于 12 到 30 个字符之间,并且必须至少包含一个大写字母、一个小写字母和一个数字字符。

    • 密码不能包含用户名。

    • 密码不能是同一用户名最后四个密码之一。

    • 密码不能包含双引号 (") 字符。

    • 密码不能是 24 小时内设置的同一密码。

  • ORA12C_STIG_VERIFY_FUNCTION

    此函数在用户创建或修改密码时检查以下要求:

    • 密码至少包含 15 个字符。

    • 密码至少有 1 个小写字符和至少 1 个大写字符。

    • 密码至少有 1 位数字。

    • 密码至少包含 1 个特殊字符。

    • 口令与上一个口令至少有 8 个字符。

    有关详细信息,请参阅 Oracle Database 19c Security Guide 中的 ora12c_stig_verify_function Password RequirementsOracle Database 23ai Security Guide

请注意您创建并分配给配置文件的密码验证功能 (Password Verification Function,PVF) 的以下限制:

  • 如果指定用户配置文件,则最小密码长度取决于如何定义关联的 PVF,如下所示:

    • 如果定义了 PVF,则实施的最小密码长度为 8 个字符,至少有一个大写字母、一个小写字母和一个数字字符。密码不能包含用户名。

    • 如果将 PVF 定义为 NULL,则实施的最小密码长度为 8 个字符,至少有一个大写字母、一个小写字母和一个数字字符。密码不能包含用户名。

    • 如果配置文件没有定义 PVF,则会指定 DEFAULT 配置文件的 PVF (CLOUD_VERIFY_FUNCTION),且强制使用的最小密码长度为 12 个字符。

  • 如果指定的口令验证函数 (Password Verify Function,PVF) 比缺省的 CLOUD_VERIFY_FUNCTION 更严格,则使用新的验证函数。
  • 创建的 PVF 必须创建为 DEFINER RIGHTS PL/SQL 函数。如果将 INVOKER 权限 PVF 作为 CREATEALTER PROFILE 的输入提供,则会引发 ORA-28220 错误。

  • 您创建的任何 PVF 必须在 ADMIN 用户方案中创建。如果将非 ADMIN 用户拥有的 PVF 作为输入提供给 CREATEALTER PROFILE,则会引发 ORA-28220 错误。

  • ADMIN 用户无法更改或删除 PVF。也就是说,不允许具有 CREATEDROP ANY PROCEDURE 特权的任何用户更改或删除 PVF。

  • 如果删除与配置文件关联的 PVF,则任何更改在其配置文件中使用 PVF 的用户的口令的尝试都会引发错误 ORA-7443。当删除与其配置文件关联的 PVF 时,用户仍可以登录。但是,如果用户的密码已过期并且 PVF 被删除,则用户无法登录。

    要从 ORA-7443 错误恢复, ADMIN 用户必须重新创建已删除的 PVF 并将其分配给配置文件,或者将现有 PVF 分配给配置文件。这允许用户更改其密码和登录名。

  • 审计 CREATE ANY PROCEDURE 系统特权和 DROP ANY PROCEDURE 系统特权以实现 PVF 安全性。有关详细信息,请参阅 Oracle Database 19c SQL Language Reference 中的 PROCEDURES 列表或 Oracle Database 23ai SQL Language Reference 中的 Listings of System and Object Privileges

有关详细信息,请参阅 Oracle Database 19c Security GuideOracle Database 23ai Security Guide 中的 Managing the Complexity of Passwords

应用程序的逐步数据库密码滚动更新

应用程序可以更改其数据库密码,而无需管理员安排停机时间。

为此,可以将对 PASSWORD_ROLLOVER_TIME 口令概要文件参数具有非零限制的概要文件与应用程序方案关联。这允许更改应用程序用户的数据库密码,同时允许较旧的密码在 PASSWORD_ROLLOVER_TIME 限制指定的时间内保持有效。在滚存期间,应用程序实例可以使用旧密码或新密码连接到数据库服务器。滚存时间到期时,只允许使用新密码。

有关更多信息,请参见 Managing Gradual Database Password Rollover for Applications