我已经研究了网络,但我找不到与我完全相同的情况,所以我发布了这条消息。
我正在通过远程桌面连接连接到远程服务器(Win2k3 服务器)。此服务器已安装(从 v$version 中选择 *):
- Oracle 数据库 10g 企业版 10.2.0.5.0 版 - 产品
- PL/SQL 版本 10.2.0.5.0 - 生产
- 核心 10.2.0.5.0 生产
- 用于 32 位 Windows 的 TNS:版本 10.2.0.5.0 - 生产
- NLSRTL 版本 10.2.0.5.0 - 生产
运行这两个句子都会返回错误:
c:\> sqlplus
SQL> conn / as sysdba
Insufficient privileges
SQL> connect system/****
Account locked
远程计算机是安装数据库的地方,所以我没有连接到远程数据库。windows 用户帐户属于 Administrator 和 Ora_DBA Windows 组。
Db 只有一个用户可用(我们开发的应用程序使用的那个),但它没有足够的权限来更改 SYSTEM 帐户并解锁它。
我不知道我还能做什么,因为我无法以管理员身份连接到 de db。我希望我已经为我的问题提供了足够的数据,如果我遗漏了什么,请询问。
编辑:我再次检查了 Windows 用户成员资格:管理员、ora_dba、用户和“远程工作场所用户”(希望我已经翻译了最后一项)。
PWD%ORACLE_SID%.ora
文件不存在(假设这是正确的)。
EDIT2:我正在连接到本地数据库。我找到了 3 个安装的 SQLPLUS:一个来自 Oracle Forms 6i(是的,我知道它确实是旧版本),另一个来自 Oracle 10 客户端,最后一个来自 Oracle 10 DB。HKLM/SOFTWARE/ORACLE
正如我在评论中所读到的,我不知道在 中寻找 ORACLE_HOME 。在注册表中,我找到的所有条目都指向 Oracle Forms 文件夹。我尝试使用完整路径运行sqlplus,属于数据库安装的sqlplus,最后我已经连接conn / as sysdba
并运行了解锁帐户语句,所以问题解决了,因为我的目标是解锁系统帐户。
仔细检查这一点,因为当您不是 ora_dba 组的成员时,您会收到上述错误。
检查
%ORACLE_HOME%/network/admin/sqlnet.ora
以下行:SQLNET.AUTHENTICATION_SERVICES=(NTS)
如果设置为
NONE
,则禁用使用 登录/ as sysdba
,但会导致ORA-01017: invalid username/password; logon denied
错误。最后,
SYS
密码存储在数据库之外的一个文件中,在 Windows 上是%ORACLE_HOME%/database/PWD%ORACLE_SID%.ora
. 您可以重新创建它(提供新的 SYS 密码):orapwd file=%ORACLE_HOME%/database/PWD%ORACLE_SID%.ora force=y
之后,您应该能够使用给定的密码登录:
connect sys/password as sysdba
使用 pfile 或 spfile 更改参数 REMOTE_LOGIN_PASSWORDFILE=exclusive。使用 Windows 服务再次创建包含上述条目的 spfile 关闭 oracle 使用 CMD 执行 orapwd file=%ORACLE_HOME%/database/PWD%ORACLE_SID%.ora force=y .. 重新启动您的 sql 会话并登录 /as sysdba 并重新启动 db。
我认为您的 REMOTE_LOGIN_PASSWORDFILE=none 或设置不正确。由于这个原因,您遇到了这个问题。
Linux
Version 11.2.0.1.0 - Production
错误 :
我使用了balazs-papp的指令,但作为 Linux 环境,命令语法发生了变化,但过程是相同的:
有用 !!!