ORA-47986密码太短报错,教你远程快速修复方法分享
- 问答
- 2026-01-16 21:07:06
- 1
ORA-47986密码太短报错,教你远程快速修复方法分享 来源:根据Oracle官方支持文档、DBA社区常见问题汇总以及远程运维实践经验整理)
遇到ORA-47986这个报错,别慌,这可能是Oracle数据库在提醒你,某个用户的密码“太短了”,不符合当前的安全规则,尤其是在你远程管理服务器,通过命令行或者图形化工具创建或修改用户密码时,很容易碰到这个问题,下面就直接告诉你这是怎么回事,以及怎么快速解决它。
报错原因很简单:密码策略“卡”住了
这个错误的根本原因,不是你的密码真的简单到只有两三位,而是它没有达到数据库当前生效的“密码验证函数”所要求的最低长度标准。(来源:Oracle官方文档关于密码复杂性验证的说明)你可以把这个验证函数想象成数据库门口的一个“保安”,它有一份规则清单,其中一条硬性规定就是:“密码长度必须大于等于X个字符”,你设置的密码长度如果没达到这个“X”,这个负责任的“保安”就会毫不犹豫地把你拦下来,并抛出ORA-47986错误。
这个要命的“X”到底是几呢?这取决于一个叫做PASSWORD_MIN_LENGTH的参数设置,这个参数是数据库“密码配置文件”里的一个重要选项。(来源:Oracle数据库管理员基础管理指南)默认情况下,很多Oracle数据库安装后,会使用一个默认的密码配置文件(比如DEFAULT),这个文件里就可能规定了密码最短不能少于8个字符,如果你习惯性地设置了像“abc123”这样的6位密码,就正好撞到枪口上了。
远程快速修复的几种实战方法
既然是远程操作,我们的一切行动都要通过网络连接来完成,以下方法由易到难,你可以根据自己对数据库的权限来选择。
方法1:最直接的方法——设置一个更长的密码
这是首选方案,也是最符合安全规范的作法,既然报错说密码太短,那我们就把密码设置得长一点不就行了?
操作步骤:
- 用具有足够权限的用户(比如
SYSDBA身份的SYS用户)连接到你的远程数据库实例,你可以使用SQL*Plus命令行工具,或者PL/SQL Developer等图形化工具。 - 执行修改密码的命令,假设你要修改的用户叫
SCOTT,新密码想设为my_new_secure_password_2024(这个长度肯定够了):ALTER USER scott IDENTIFIED BY "my_new_secure_password_2024";
- 执行成功后,再用新密码去连接测试一下,应该就能正常登录了。
方法2:检查并修改密码策略(需要较高权限)
业务系统的一些老旧账户可能兼容性要求,确实需要使用较短的密码,这时,如果你有权限,可以临时调整一下密码策略,放宽限制。
-
步骤A:先查看当前的密码策略 连接到数据库后,执行以下SQL查询,看看
DEFAULT配置文件的具体要求:SELECT resource_name, limit FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_name LIKE 'PASSWORD%';
重点关注
PASSWORD_MIN_LENGTH这一行的LIMIT值,它就是当前要求的最小密码长度。 -
步骤B:修改最小密码长度 如果确认需要修改,比如你想把最小长度从8改成6,可以执行:
ALTER PROFILE DEFAULT LIMIT PASSWORD_MIN_LENGTH 6;
修改成功后,你再回头去用方法1设置一个6位或以上的密码,就不会再报错了。 注意:放宽密码策略会降低数据库安全性,请仅在确有需要时使用,并评估潜在风险。(来源:信息安全最佳实践)
方法3:为特定用户换一个“宽松”的密码配置文件(需要较高权限)
如果不想动整个数据库的默认策略,也可以考虑“特事特办”,为那个报错的用户单独分配一个密码要求更宽松的配置文件。
-
步骤A:创建一个新的、要求低的配置文件 我们创建一个名叫
LOW_SEC_PWD的配置文件,只要求密码长度至少为1(这几乎等于没要求):CREATE PROFILE low_sec_pwd LIMIT PASSWORD_MIN_LENGTH 1;
-
步骤B:将新配置文件分配给目标用户
ALTER USER scott PROFILE low_sec_pwd;
这样,用户
scott就脱离了DEFAULT配置文件的严格管制,转而遵守LOW_SEC_PWD的宽松规则,之后你再给他设置短密码就不会有问题了,同样,此法慎用,以免留下安全漏洞。
远程操作的小贴士
- 权限是关键:方法2和方法3都需要
ALTER PROFILE或CREATE PROFILE的系统权限,通常只有DBA角色或SYS用户才能执行,如果你用的是普通用户,可能需要联系拥有高级权限的同事帮忙。 - 连接要稳定:远程操作时,确保你的网络连接稳定,避免在执行关键SQL语句时断线,可能引起锁等问题。
- 修改后要测试:无论采用哪种方法,修改完成后,务必用新密码或新方式重新连接一次数据库,确认问题已经解决。
ORA-47986报错并不可怕,它只是一个简单的规则检查失败,远程处理时,核心思路就是“要么遵守规则设置长密码,要么有权限就临时调整规则”,希望这些直接的方法能帮你快速解决问题。

本文由度秀梅于2026-01-16发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://haoid.cn/wenda/82008.html
