注意:
- 此教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室时,请将这些值替换为特定于您的云环境的值。
在 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 工具来实现此目的。
在使用密码转滚功能之前,还需要了解其他事项。
-
如果在滚动更新期间内再次更改了密码,则只有最早和最新的密码保持有效,例如,如果最初用户具有密码 p1(该密码已使用密码滚动更新更改为 p2),并且在第一次更改的滚动更新期间内,该密码再次更改为 p3,则只有 p1 和 p3 保持有效,而 p2 变为无效。此外,口令翻转时段的失效时间不会更改,即不会针对新的口令更改进行更新。在密码翻转窗口中多次轮转密码时,这非常有用,因为应用程序仍然可以使用旧密码创建连接。
-
管理用户无法使用口令滚动更新功能,即使这些用户附加到设置了
PASSWORD_ROLLOVER_TIME
参数的配置文件,也无法向附加到设置了PASSWORD_ROLLOVER_TIME
参数的配置文件的用户授予管理权限。
目标
- 使用 Oracle Database 中的渐进口令滚动更新功能。利用此功能,避免由于密码更改而导致应用停机或发生协调。
先决条件
-
活动的 OCI 账户。
-
了解 Oracle Database。
-
ATP 数据库实例。
-
在 Oracle Cloud Infrastructure Database 中创建配置文件并将配置文件分配给用户的用户权限。
任务 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 天)的配置文件。
-
运行以下 SQL 查询以创建名为
PW_ROLLOVER_TIME_1HR_PROF
的概要文件。create profile PW_ROLLOVER_TIME_1HR_PROF limit FAILED_LOGIN_ATTEMPTS 10 PASSWORD_ROLLOVER_TIME 1/24;
-
运行以下 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
分配给用户。
-
运行以下 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>;
-
运行以下 SQL 查询以授予
CREATE SESSION
权限以测试数据库连接。GRANT CREATE SESSION TO DB_TEST;
-
我们将使用以下 SQL 查询来检查帐户状态。
select user_name, profile, account_status from dba_users where user_name = 'DB_TEST';
任务 4:更改用户密码
更改用户口令并查看帐户状态。
-
运行以下 SQL 查询以更改用户密码。
alter user DB_TEST identified by "New_Pass@2023";
-
检查帐户状态。
帐户状态现在显示
IN ROLLOVER
,这意味着DB_TEST
用户帐户当前处于滚动更新状态,旧密码和新密码都可用于连接到用户 1 小时。1 小时后,将不再接受旧密码,并且只能使用新密码建立连接。
任务 5:强制使展期到期
密码翻转功能允许我们在不希望旧密码在剩余翻转期间有效时强制过期翻转。
-
运行以下 SQL 查询以使用户的密码翻滚到期。
alter user DB_TEST expire password rollover period;
-
检查帐户状态。
账户状态已更改为
OPEN
,我们无法再使用旧密码连接到数据库。因此,当用户处于滚动更新状态(如新密码和旧密码)时,DBA_USERS
表中的帐户状态为OPEN & IN ROLLOVER
,并且在滚动更新期间到期后帐户状态更改为OPEN
。
相关链接
确认
- 作者 -Satyam Kumar(技术人员成员)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Set up Gradual Password Rollover in Oracle Database on Oracle Cloud Infrastructure
F93099-01
February 2024
Copyright © 2024, Oracle and/or its affiliates.