主机身份证明 - 以用户 sys 的身份连接 主机 null 失败。ERROR: Invalid username

本文介绍如何在Oracle Enterprise Manager (OEM) 工具中设置数据库备份与恢复策略。主要内容包括理解并使用主机身份证明,即Oracle所在主机的OS账户进行验证的过程。

https://10.10.1.4:1158/em/console/logon/logon#

用oem工具设置数据库备份与恢复策略时需要提供主机身份证明。其实主机身份证明就是

Oracle所在主机的OS账户。

也就是oracle所在机器的系统的登录帐号和密码

我使用的是CentOS 5.5 我的登录帐号密码是test/test

那么提示使用主机身份证明的时候,就需要输入帐号:test 和密码:test

OK!

<think>好的,我现在需要解决用户Oracle数据库中修改密码后仍然遇到ORA-01017错误的问题。首先,我得回忆一下ORA-01017错误的常见原因,然后结合用户提到的修改密码后的具体情况,逐步分析可能的原因和解决方案。 根据用户提供的引用资料,尤其是引用[1]、[2]、[3],常见的原因包括用户名或密码错误、密码复杂性策略、权限问题、特殊字符处理、客户端配置以及审计日志等。用户已经修改过密码,但依然无法登录,所以需要排除其他可能性。 首先,检查密码是否正确。用户可能输入了错误的密码,或者修改密码时存在拼写错误。例如,密码可能包含特殊字符,比如@或#,这些在命令行或某些客户端中可能需要转义。引用[2]提到需要检查密码是否正确,特别是使用特殊字符时的情况。 其次,考虑Oracle的密码复杂性策略。如果新密码不符合策略,比如长度不够或没有包含足够的字符类型,修改密码时可能会被拒绝,但用户可能没有注意到错误提示。引用[3]中提到可能需要使用ALTER USER命令修改密码,并确保符合策略。 接下来,权限问题。用户是否有权限修改密码?修改密码后是否立即生效?可能需要检查用户的状态,比如是否被锁定。引用[3]中的审计日志查询可以帮助定位到具体的用户和登录时间,从而确认是否密码错误导致。 另外,客户端配置的问题。例如,引用[5]提到pl/sql登录时可能需要配置sqlnet.ora文件,或者检查客户端的版本兼容性。如果用户使用的是PL/SQL或其他客户端工具,可能需要检查网络配置或驱动是否正确。 还有可能是密码验证延迟。例如,在RAC环境中,密码同步可能需要时间,或者存在多个节点导致密码未同步。引用[3]中的审计日志可以显示登录失败的记录,帮助确定具体时间和用户。 此外,密码是否区分大小写?Oracle默认密码是否区分大小写取决于参数设置,如果启用了密码大小写敏感,输入时需要注意。引用[2]也提到了这一点。 最后,可能需要检查数据库的审计日志,如引用[3]中的dba_audit_session视图,查看具体的失败记录,确认是哪个用户数据库在尝试连接失败,从而针对性地解决问题。 总结下来,步骤可能包括:验证密码正确性、检查密码策略、查看用户状态和权限、处理特殊字符、检查客户端配置、查询审计日志等。需要逐一排查这些可能性,找到导致ORA-01017的具体原因。</think>### 逐步排查Oracle修改密码后仍报ORA-01017的原因与解决方案 #### 1. **确认密码输入正确性** - **现象**:密码修改后立即尝试登录失败- **排查步骤**: - 检查密码是否包含特殊字符(如`@`、`#`、`$`等)。在命令行或客户端工具中,特殊字符可能需要转义或使用引号包裹,例如: ```bash sqlplus "user/\"password@123\"@service" ``` - 使用`sqlplus`直接测试新密码: ```sql sqlplus username/new_password@service_name ``` - 若密码正确但仍报错,可能是**密码复杂性策略**导致。Oracle默认启用密码策略,需满足长度、大小写、数字等要求。可通过以下命令关闭策略(临时): ```sql ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL; ``` 再尝试修改密码[^2][^3]。 #### 2. **检查用户状态与权限** - **现象**:密码正确但用户被锁定或权限不足。 - **排查步骤**: - 查询用户状态: ```sql SELECT username, account_status FROM dba_users WHERE username = 'YOUR_USER'; ``` 若状态为`LOCKED`,需解锁: ```sql ALTER USER your_user ACCOUNT UNLOCK; ``` - 确认用户是否有`CREATE SESSION`权限: ```sql GRANT CREATE SESSION TO your_user; ``` #### 3. **审计日志定位具体错误** - **现象**:多数据源场景下,不确定具体哪个用户数据库报错。 - **排查步骤**: - 查询`dba_audit_session`视图,过滤登录失败记录: ```sql SELECT os_username, username, userhost, timestamp FROM dba_audit_session WHERE action_name = 'LOGON' AND returncode = 1017 ORDER BY timestamp DESC; ``` 结果中的`USERNAME`字段会显示具体报错的数据库用户,`TIMESTAMP`可关联操作时间[^3]。 #### 4. **客户端配置与兼容性** - **现象**:通过工具(如PL/SQL Developer)登录失败,但`sqlplus`可正常登录。 - **排查步骤**: - **检查客户端版本**:确保工具支持Oracle 12c协议。旧版PL/SQL可能需升级或配置`sqlnet.ora`: ```ini SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8 SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 ``` 添加后重启监听服务[^5]。 - **检查连接字符串**:确认服务名或TNS配置是否正确,避免使用别名混淆。 #### 5. **密码同步与缓存问题** - **现象**:密码修改后部分节点仍报错。 - **排查步骤**: - 在RAC环境中,确保所有节点密码同步。手动执行`ALTER USER`命令同步密码。 - 清除客户端密码缓存:某些客户端(如Windows ODBC)可能缓存旧密码,需重启服务或重新配置连接。 #### 6. **密码大小写敏感性** - **现象**:密码输入时大小写不一致。 - **排查步骤**: - Oracle默认密码区分大小写。检查参数`SEC_CASE_SENSITIVE_LOGON`: ```sql SHOW PARAMETER SEC_CASE_SENSITIVE_LOGON; ``` 若为`TRUE`,需严格匹配大小写[^2]。 ### 总结流程图 ```mermaid graph TD A[ORA-01017报错] --> B{密码正确性} B -->|是| C[检查密码策略] B -->|否| D[修正密码输入] C --> E[用户状态/权限] E --> F[审计日志分析] F --> G[客户端配置] G --> H[密码同步与缓存] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值