注意:

在 Oracle Cloud Infrastructure 上的 Oracle Database 中设置渐进式密码滚动更新

简介

渐进口令滚动更新是 Oracle Database 中的一项功能,它允许更改数据库用户的口令,而不会中断当前使用旧口令的应用程序。渐进的口令翻转后,旧口令在指定的时间段内仍然有效,之后不再接受该口令,即暂时允许用户使用两个不同的口令。这样就可以在不停机的情况下将新密码传播到所有客户端应用。密码翻转周期从更改密码的那一刻开始。

渐进口令滚动更新功能显示为用户配置文件口令资源设置(口令资源限制)PASSWORD_ROLLOVER_TIME,该设置应用于用户会话。Oracle Database 中的用户概要文件是数据库资源的一组限制 - 用户级配置。用户概要文件有助于监管每个数据库用户使用的资源量。使用名为 DEFAULT 的缺省配置文件创建数据库,如果不另行指定,该配置文件将分配给数据库的所有用户。我们可以使用默认配置文件或创建新配置文件来添加密码资源限制。

在本教程中,我们只重点介绍 PASSWORD_ROLLOVER_TIME,并通过分步指南在 Oracle Autonomous Transaction Processing (ATP) 数据库服务中使用此功能。我们将使用 OCI 控制台中的 Oracle SQL Developer Web 工具来实现此目的。

在使用密码转滚功能之前,还需要了解其他事项。

目标

先决条件

任务 1:检查 ATP 中的默认配置文件

我们将在 ATP 中看到缺省配置文件和 PASSWORD_ROLLOVER_TIME 资源的值。

打开 Oracle SQL Developer Web 工具并运行以下 SQL 查询来检查 DEFAULT 概要信息的限制。

select * from dba_profiles where profile = 'DEFAULT';

图中显示了查询结果。

在下图中,我们看到 DEFAULT 配置文件具有许多资源,PASSWORD_ROLLOVER_TIME 的限制(值)为 0。这意味着为 DEFAULT 配置文件禁用渐进口令滚动更新。可以更改 DEFAULT 配置文件中的资源限制,但是我们将创建一个新配置文件来演示此功能。

任务 2:创建新用户概要文件

创建 FAILED_LOGIN_ATTEMPTS 设置为 10 且 PASSWORD_ROLLOVER_TIME 限制为 1 小时(1/24 天)的配置文件。

  1. 运行以下 SQL 查询以创建名为 PW_ROLLOVER_TIME_1HR_PROF 的概要文件。

    create profile PW_ROLLOVER_TIME_1HR_PROF limit FAILED_LOGIN_ATTEMPTS 10 PASSWORD_ROLLOVER_TIME 1/24;
    

    图中显示了查询结果。

  2. 运行以下 SQL 查询以检查 PASSWORD_ROLLOVER_TIME 限制。

    select * from dba_profiles where profile = 'PW_ROLLOVER_TIME_1HR_PROF';
    

    图中显示了查询结果。

    PASSWORD_ROLLOVER_TIME 的资源限制为 0.416(1/24 天),失败的登录尝试设置为 10

任务 3:创建用户账户

我们将创建一个用户帐户,并将创建的配置文件 PW_ROLLOVER_TIME_1HR_PROF 分配给用户。

  1. 运行以下 SQL 查询以创建名为 db_test 的用户。

    create user db_test identified by "Pass_Rollover@2023" profile = 'PW_ROLLOVER_TIME_1HR_PROF';
    

    图中显示了查询结果。

    还可以使用以下命令将现有用户附加到配置文件。

    alter user <user_name> profile <profile_name>;
    
  2. 运行以下 SQL 查询以授予 CREATE SESSION 权限以测试数据库连接。

    GRANT CREATE SESSION TO DB_TEST;
    

    图中显示了查询结果。

  3. 我们将使用以下 SQL 查询来检查帐户状态。

    select user_name, profile, account_status from dba_users where user_name = 'DB_TEST';
    

    图中显示了查询结果。

任务 4:更改用户密码

更改用户口令并查看帐户状态。

  1. 运行以下 SQL 查询以更改用户密码。

    alter user DB_TEST identified by "New_Pass@2023";
    
  2. 检查帐户状态。

    图中显示了查询结果。

    帐户状态现在显示 IN ROLLOVER,这意味着 DB_TEST 用户帐户当前处于滚动更新状态,旧密码和新密码都可用于连接到用户 1 小时。1 小时后,将不再接受旧密码,并且只能使用新密码建立连接。

任务 5:强制使展期到期

密码翻转功能允许我们在不希望旧密码在剩余翻转期间有效时强制过期翻转。

  1. 运行以下 SQL 查询以使用户的密码翻滚到期。

    alter user DB_TEST expire password rollover period;
    

    图中显示了查询结果。

  2. 检查帐户状态。

    图中显示了查询结果。

    账户状态已更改为 OPEN,我们无法再使用旧密码连接到数据库。因此,当用户处于滚动更新状态(如新密码和旧密码)时,DBA_USERS 表中的帐户状态为 OPEN & IN ROLLOVER,并且在滚动更新期间到期后帐户状态更改为 OPEN

确认

更多学习资源

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

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