在数据库服务器执行:
sqlplus user/password@orcl
或:
sqlplus user/password
👉 结果判断:
SELECT username, account_status, lock_date, expiry_date
FROM dba_users
WHERE username = 'XXX';
处理:
ALTER USER xxx ACCOUNT UNLOCK;
ALTER USER xxx IDENTIFIED BY new_password;
SELECT username, password_versions FROM dba_users;
异常情况:
10G
👉 原因:
✔ 解决:
ALTER USER xxx IDENTIFIED BY new_password;
很多人误以为密码错,其实连错实例
SELECT name FROM v$database;
SELECT sys_context( 'USERENV', 'DB_NAME') FROM dual;
错误示例(很常见):
sqlplus user/pass@ip:1521:ORCL -- SID写法
正确建议:
sqlplus user/pass@//ip:1521/ORCL
tnsping orcl
特别是:
检查:
echo $NLS_LANG
建议统一:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
sqlplus -v
👉 建议:
路径:
$ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (NTS)
👉 问题:
✔ 建议测试:
SQLNET.AUTHENTICATION_SERVICES = (NONE)
SQLNET.ALLOWED_LOGON_VERSION_SERVER
SQLNET.ALLOWED_LOGON_VERSION_CLIENT
👉 如果客户端太老,会被拒绝
sqlplus sys/password@orcl as sysdba
👉 报密码错可能是:
✔ 处理:
orapwd file=$ORACLE_HOME/dbs/orapwORCL password=xxx force=y
SELECT * FROM dba_profiles
WHERE resource_name LIKE 'FAILED_LOGIN_ATTEMPTS';
👉 超过次数 → 自动锁定
$ORACLE_BASE/diag/tnslsnr/.../trace/listener.log
$ORACLE_BASE/diag/rdbms/.../trace/alert.log
👉 可以看到:
按优先级👇
你可以优先怀疑这几个:
👉 90%概率在这里:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10201716/viewspace-3116158/ ,如需转载,请注明出处,否则将追究法律责任。