ITPub博客

首页 > 数据库 > 国内数据库 > OceanBase Oracle模式|Profile 登录失败锁定配置指南

OceanBase Oracle模式|Profile 登录失败锁定配置指南

原创 国内数据库 作者:瑞蓝创_RLC_888 时间:2026-07-15 11:28:48 0 删除 编辑

官方来源:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218720

适用范围:OceanBase V4.2.1 及以上企业版 Oracle 模式租户

一、功能概述

OceanBase 数据库通过 User Profile(用户配置文件)实现登录失败锁定功能,核心目的是防止暴力密码破解攻击,提升数据库安全性。

  • 当用户连续登录失败次数达到阈值时,系统会自动锁定该用户
  • 锁定时间可自定义,到期后自动解锁,也可由管理员手动提前解锁
  • 所有策略基于 Profile 统一管理,可批量应用给多个用户

二、核心参数说明

Profile 通过4个密码相关参数管控登录与密码策略,前两项为登录锁定核心参数:

参数名 含义 单位 默认值(DEFAULT Profile)
FAILED_LOGIN_ATTEMPTS 连续登录失败的最大次数,达到后锁定用户 次 UNLIMITED(无限制)
PASSWORD_LOCK_TIME 用户被锁定的时长 天 UNLIMITED(一直锁定)
PASSWORD_LIFE_TIME 密码的有效使用天数 天 UNLIMITED(一直有效)
PASSWORD_GRACE_TIME 密码过期后的宽限期,期间仍可登录 天 UNLIMITED(无宽限期)

重要说明

  1. 用户未指定Profile时,默认继承 DEFAULT Profile;
  2. 默认Profile全部参数为 UNLIMITED,无登录锁定、密码过期策略,生产环境必须修改;
  3. 参数支持三种赋值:整数、 UNLIMITED(无限制)、 DEFAULT(继承默认配置)。

三、标准操作步骤

步骤1. 前提条件

  • 使用SYS等管理员账号登录Oracle模式租户;
  • 创建Profile需要 CREATE PROFILE 系统权限;
  • 解锁账号需要 ALTER USER 系统权限。

步骤2. 创建自定义登录锁定策略 Profile



-- 语法模板

CREATE PROFILE  "profile_name"  LIMIT
   FAILED_LOGIN_ATTEMPTS { integer |  UNLIMITED |  DEFAULT}
   PASSWORD_LOCK_TIME { integer |  UNLIMITED |  DEFAULT}
  [PASSWORD_LIFE_TIME { integer |  UNLIMITED |  DEFAULT}]
  [ PASSWORD_GRACE_TIME { integer |  UNLIMITED |  DEFAULT}];

-- 示例1:连续失败5次,自动锁定1天
CREATE PROFILE  "sec_profile_5_1"  LIMIT
   FAILED_LOGIN_ATTEMPTS  5
   PASSWORD_LOCK_TIME  1;

-- 示例2:连续失败3次,一直锁定账号
CREATE PROFILE  "sec_profile_3_perm"  LIMIT
   FAILED_LOGIN_ATTEMPTS  3
   PASSWORD_LOCK_TIME  UNLIMITED;

步骤3. 校验Profile配置



-- 查询全部密码类Profile配置

SELECT PROFILE, RESOURCE_NAME,  LIMIT 
FROM DBA_PROFILES 
WHERE RESOURCE_TYPE =  'PASSWORD'
ORDER  BY PROFILE, RESOURCE_NAME;

-- 单独查看指定Profile详情
SELECT *  FROM DBA_PROFILES 
WHERE PROFILE =  'SEC_PROFILE_5_1'  AND RESOURCE_TYPE =  'PASSWORD';

步骤4. 将Profile绑定给业务用户

方式1:新建用户时直接指定Profile(推荐)



-- 语法模板

CREATE  USER  "user_name"  IDENTIFIED  BY  "password" PROFILE  "profile_name";

-- 实操示例
CREATE  USER  "app_user"  IDENTIFIED  BY  "App@20240605" PROFILE  "sec_profile_5_1";

-- 授予基础会话权限
GRANT  CREATE  SESSION,  CREATE  TABLE  TO  "app_user";

方式2:给存量用户修改Profile



-- 语法模板

ALTER  USER  "user_name" PROFILE  "profile_name";

-- 实操示例
ALTER  USER  "old_user" PROFILE  "sec_profile_5_1";

> 注意:修改用户Profile仅对后续新会话生效,不影响已建立的长连接。

步骤5. 验证锁定策略生效

  1. 测试账号连续输入错误密码,达到次数阈值;
  2. 再次登录抛出报错:

ERROR 5039 (01007): User locked

  1. 管理员查询失败登录记录:


SELECT USERHOST, FAILED_ATTEMPTS 

FROM information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;

步骤6. 解锁被锁定账号

方式1:自动解锁

等待 PASSWORD_LOCK_TIME 时长到期,账号自动恢复。

方式2:管理员手动解锁(紧急场景)



-- 语法模板

ALTER  USER  "user_name"  ACCOUNT  UNLOCK;

-- 示例
ALTER  USER  "app_user"  ACCOUNT  UNLOCK;

> 重要限制:已经锁定的账号,修改Profile参数无法自动解锁,必须执行上面语句。

步骤7. 修改已有Profile策略



-- 语法模板

ALTER PROFILE  "profile_name"  LIMIT
   FAILED_LOGIN_ATTEMPTS {new_value}
   PASSWORD_LOCK_TIME {new_value};

-- 示例:失败次数改为3次,锁定时长改为7天
ALTER PROFILE  "sec_profile_5_1"  LIMIT
   FAILED_LOGIN_ATTEMPTS  3
   PASSWORD_LOCK_TIME  7;

> 注意:修改Profile只对新会话生效,不会自动解锁已经锁定的用户。

四、生产环境最佳实践

1. 加固默认Profile

关闭无限制策略,统一基线:



ALTER PROFILE 
"DEFAULT" 
LIMIT

   FAILED_LOGIN_ATTEMPTS  5
   PASSWORD_LOCK_TIME  1
  PASSWORD_LIFE_TIME  90
   PASSWORD_GRACE_TIME  7;

2. 分级安全策略

  • 管理员账号:连续失败3次,一直锁定
  • 普通业务账号:连续失败5次,锁定1天
  • 只读账号:连续失败10次,锁定30分钟

3. 定期安全审计

定时查询失败登录视图,及时发现暴力破解行为:



SELECT USERHOST, FAILED_ATTEMPTS 

FROM information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;

4. 权限最小化管控

严格收紧 ALTER USER 权限,仅少量运维管理员拥有账号解锁权限。

五、常见问题排查

问题1:账号已经锁定,修改Profile锁定时长,账号依旧无法自动解锁

原因:Profile配置变更只对未来生效,不处理已经锁定的存量账号

解决:执行 ALTER USER 用户名 ACCOUNT UNLOCK; 手动解锁

问题2:配置 FAILED_LOGIN_ATTEMPTS=5,输错6次才触发锁定

原因:失败计数从0开始,累计5次失败达到阈值,第6次登录才会返回账号锁定报错

问题3:DBA_PROFILES 中看到 PASSWORD_LOCK_TIME 值为 86400000000

原因:该数字是 UNLIMITED 在数据库内部的存储值,属于正常现象,无需处理。

六、官方文档链接

  1. CREATE PROFILE 语法: CREATE PROFILE
  2. CREATE USER 语法: CREATE USER
  3. MySQL模式登录失败策略: MySQL 模式通过租户级配置项 connection_control_failed_connections_threshold 来控
  4. Oracle模式登录失败策略: Oracle 模式利用 User Profile 实现用户锁定功能

如果在操作过程中遇到问题,欢迎在评论区留言交流,后续我们会持续分享更多实战运维干货,记得   关注不迷路,下次见~

暂无图片


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047467/viewspace-3175972/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专注于企业信息科技战略咨询、数据中心规划及运维、智能化软件产品研发,致力于为金融、能源、电信、制造等行业提供智能的业务永续及流程自动化解决方案。

注册时间:2025-09-08

  • 博文量
    89
  • 访问量
    86736