oracle

关注公众号 jb51net

关闭
首页 > 数据库 > oracle > Oracle SYS用户无法登录

Oracle SYS用户无法登录数据库ORA-12162的解决方法

作者:Albert Tan

文章解析Oracle SYSDBA用户OS登录错误(ORA-12162)原因及解决方法,指出未设置ORACLE_HOME和ORACLE_SID环境变量导致系统无法识别实例,进而无法连接数据库,同时介绍了SYS用户权限、数据字典管理及两种登录认证方式(操作系统认证和数据库认证)

错误详情

[Oracle@orcl bin]$ ./sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Aug 18 08:12:04 2025
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
ERROR:
ORA-12162: TNS:net service name is incorrectly specified

OS登录解析

注意:Oracle 数据库使用SYSDBA用户在OS级别登录时,需要满足最基本的两个条件

  1. 必须设置ORACLE_HOME路径,并将其加入到PATH变量中
  2. 必须设置ORACLE_SID变量,ORACLE_SID表明需要登录的数据库

错误原因

  1. 虽然此处报错显示未指定正确监听名称,但是SYSDBA用户是通过操作系统认证的,无需通过监听识别即可直接登录数据库。当前库并未设置ORACLE_HOME和ORACLE_SID变量,导致无法程序无法识别实例,从而无法连接数据库。
  2. 将ORACLE_HOME添加到PATH中的目的是可以直接运行Oracle的相关程序,如:sqlplus、lsnrctl、tnsping等常用工具。无需再进入到文件夹中调用执行。

解决方案

1、设置变量

$ export ORACLE_BASE=/u01/db/11.2.0.4
$ export ORACLE_HOME=$ORACLE_BASE/orcl
$ export PATH=$ORACLE_HOME/bin:$PATH
$ export ORACLE_SID=ORCL

2、登录即可

[oracle@orcl ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 22 20:48:44 2025
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>

理解SYS用户

1、介绍
Oracle数据库中的 SYS用户 是系统内置的超级管理员账户,具有最高权限,所有Oracle的数据字典的基表和视图都存放在SYS用户中,承担数据库核心管理任务。重点:不受数据库的限制访问和管理整个数据库的能力。

2、特点

  1. 最高权限:SYS用户拥有DBA、SYSDBA、SYSOPER等角色或权限。SYS用户可以进行创建/删除用户、表空间、数据库实例、备份和恢复等高级操作,是Oracle权限最高的用户。
  2. 数据字典:所有Oracle的数据字典的基表和视图都存放在SYS用户中,这些基表和视图对于Oracle的运行至关重要。
  3. 密码管理:SYS用户通过OS级别的密码文件对其密码进行管理,虽然可以通过SQL语法直接修改密码,但前提是OS级别的密码文件必须先存在,否则无法通过SQL语法直接修改SYS用户的密码。默认密码是change_on_install
  4. 登录方式:SYS用户必须以SYSDBA身份登录。

3、SYS登录认证方式

  1. 操作系统认证:当完成数据库安装后,可直接通过sysdba用户登录数据库,而不会验证用户名和密码,该认证方式的用户称为特权用户。操作系统认证主要通过sqlnet.ora文件控制,一旦取消该认证,sys用户将无法直接登录数据库,需要校验其密码正确才可以登录。
# 取消操作系统认证
$ cd $ORACLE_HOME/network/admin
$ vi sqlnet.ora
SQLNET.AUTHENTICATION_SERVICE=NONE  -- 默认不存在该参数,设置为NTS即开启
[oracle@orcl ~]$  sqlplus / as sysdba  -- 登录
SQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 22 20:48:44 2025
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
  1. 数据库认证:该方式一般针对普通用户而言,主要是将密码记录在数据库的表中,但用户需要登录时必须输入正确的用户名和密码加监听服务连接到数据库中进行校验,校验正确方可登录。
[oracle@orcl ~]$ sqlplus apps/apps@orcl  -- 普通用户登录方式
SQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 22 20:52:50 2025
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>

到此这篇关于Oracle SYS用户无法登录数据库-ORA-12162的文章就介绍到这了,更多相关Oracle SYS用户无法登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文