`

sqlplus登录数据库

阅读更多
今天看了sqlplus登录本地和远程oracle服务器,记录下供大家参考。

表面上oracle“本地登录”和“远程登录”的区别在于是否有“@”符号
SQL>conn username/password as sysdba  是本地登录
SQL>conn username/password@SID as sysdba 是远程登录
一、本地登录和远程登录的本质区别是:
1)本地登录不会调用tnsnames.ora,oracle服务器也无需启动监听器;本地登录是通过环境变量ORACLE_SID来定位数据库的,如果将其删掉,则本地登录会失败。
   ORACLE_SID为安装oracle数据库时自动生成的。
   (1)windows系统默认的ORACLE_SID值为最后所安装的实例,查看该变量值的操作如下:
    开始---运行,输入regedit打开注册表
    在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1中查看ORACLE_SID的键值,入下图

    修改此键值则修改了默认登录的本地数据库实例,有资料说不修改注册表,只修改本次登录的实例可按照如下方法,本人未亲自试验,仅供参考: 在CMD窗口下,先修改ORACLE_SID的值(set ORACLE_SID=xxxx,该修改仅对当前CMD窗口有效),接着用同一CMD窗口访问数据库即可。
    (2)linux可用echo $ORACLE_SID 查看ORACLE_SID的值。
    (3)另外还可以登录数据库后,通过sql查看当前连接的实例
          show parameter instance;
          show parameter instance_name;
          select * from v$instance;
2)远程登录必须要用到tnsnames.ora文件,且远程服务器上oracle的监听器必须是running,而与环境变量ORACLE_SID没有关系。

二、sqlplus登录命令
   这里以远程登录为例,本地登录去掉@SID即可
   开始---运行---cmd
   方法一:首先sqlplus /nolog
           然后connect  username/password@SID 
   方法二:sqlplus username/password@SID 

   特殊情况,密码中包含@特殊符号的时候
       首先sqlplus /nolog,然后connect  username/"pass@word"@SID   --成功登录
       sqlplus username/"pass@word"@SID   --登录失败
       sqlplus ucmp/\"pass@word\"@opencms   --登录成功


三、oracle的两种认证方式
    问题:oracle 本地登录的方式登录oracle服务端:sqlplus "/as sysdba",不需要用户名密码即可登录,禁用此方式的方法:在文件sqlnet.ora中,增加一行即可:sqlnet.authentication_services=(none)
    另外如果应用程序时不时地报错"ORA-03135连接失去联系",该问题可能与sqlnet.ora设置参数SQLNET.EXPIRE_TIME 有关,在文件sqlnet.ora中,增加一行,单位分钟:SQLNET.EXPIRE_TIME = 10

    SQLNET.AUTHENTICATION_SERVICES= (NTS)是基于操作系统验证;
    SQLNET.AUTHENTICATION_SERVICES= (NONE)是基于Oracle验证;
    SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)是二者共存。

    下面详细说下oracle的认证方式(摘自http://www.cnblogs.com/junnor/archive/2013/03/07/2947273.html)。

    ORACLE数据库通过sqlnet.ora文件中的参数sqlnet.authentication_services,参数文件中的remote_login_passwordfile和口令文件pwdsid.ora三者协同作用实现身份认证.
    Sqlnet.authentication_services=(NTS)|(NONE)
    NTS:操作系统认证方式,不使用口令文件;
    NONE:口令文件认证方式

    Remote_login_passwordfile=(NONE)|(EXCLUSIVE)|(SHARED)
    NONE:不使用口令文件,操作系统认证;
    EXCLUSIVE:口令文件认证方式,但只有一个数据库实例可以使用此文件;
    SHARED:口令文件认证方式,可以有多个数据库实例可以使用此文件,但此设置下只有SYS帐号能被识别,即使文件中存在其他用户的信息,也不允许他们以SYSOPER/SYSDBA登录.

   (1).sqlnet.authentication_services=(NTS)
       同时Remote_login_passwordfile=(NONE),此时为操作系统认证方式.

       当以oracle_dba组下的用户登录进入本地的操作系统后,进行以下操作:
       sqlplus /nolog
       SQL>conn /as sysdba
       可以以sysdba身份登录成功,进行数据库方面的操作.

       当以远程进行登录时,执行:
        sqlplus /nolog
        SQL>conn /as sysdba
        则会显示:
        ERROR:ORA-01031:insufficient privileges
        即不允许以sysdba身份远程登录系统,这也是OS认证这所以称为本地认证方式的原因.

    (2).Sqlnet.authentication_services=(NONE),同时Remote_login_passwordfile=(EXCLUSIVE)|(SHARED),配合口令文件PWDsid.ora,此时为口令文件认证方式:

       当在本地以oracle_dba组下的用户登录进入系统时,进行以下操作:
        sqlplus /nolog
        SQL>conn /assysdba
        则会显示:
        ERROR:ORA-01031:insufficient privileges

       在本地或远程进行下边的操作:
       sqlplus /nolog
       SQL>conn sys/密码@服务名assysdba
       可以进入系统,也就是说口令文件认证方式允许用户从本地或远程以sysdba身份登录,但必须提供口令字.


    (3).Sqlnet.authentication_services=(NTS),同时
        Remote_login_passwordfile=(EXCLUSIVE)|(SHARED),配合口令文件PWDsid.ora,此时为操作系统认证和口令文件认证同时起作用:

        当在本地以oracle_dba组下的用户登录进入操作系统后,进行下边的操作:
        sqlplus /nolog
        SQL>conn /assysdba
        可以进入系统.即操作系统认证方式登录成功.

        当在远程执行:
        sqlplus /nolog
        SQL>conn sys/密码@服务名assysdba
        同时可正常登录到数据库系统,即口令文件认证方式登录成功.

附:

要知道以下几种登陆方式不是一种概念
sqlplus /nolog
1: conn /assysdba本机登陆,使用操作系统认证,有无监听都可以
2: conn sys/password assysdba本机登陆,使用密码文件认证,有无监听都可以
3: conn sys/password@dbanote assysdba可以本机可以远程,使用密码文件认证,必须有监听,必须有tnsnames.ora,remote_login_passwordfile必须是EXCLUSIVE

说明:
从oracle的解释可以知道,SQLNET.AUTHENTICATION_SERVICES=(NTS)是WINDOWS系统专用的,对linux/UNIX是不适用的。

最后做一个简单的总结:
1、在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为其他任何值都不能使用OS认证。
  • 大小: 139 KB
分享到:
评论

相关推荐

    Sqlplus_登录数据库

    "Sqlplus 登录数据库" Sqlplus 是 Oracle 数据库管理系统中的一种命令行工具,用于与 Oracle 数据库进行交互。Sqlplus 登录数据库是指使用 Sqlplus 工具连接到 Oracle 数据库的过程。在这个过程中,用户需要输入...

    sqlplus连接数据库方法

    本文将详细介绍如何使用sqlplus登录Oracle数据库,包括四种主要的方法。 1. Sqlplus工具登录Oracle数据库 (1) 本机orcl数据库:在命令行界面输入`sqlplus username/password@instance`,例如,如果用户名和密码都...

    sqlplusw 与 sqlplus登陆数据库的方法总结

    sqlplusw 与 sqlplus 登陆数据库的方法总结主要涉及到 Oracle 数据库的登录方法,包括 sqlplusw 工具、sqlplus 命令、PL/SQL 工具和 iSqlplus 登录 oracle 数据库的方法。 首先,需要了解 Oracle 数据库的基本概念...

    oracle新建数据库,及创建用户,表空间,sqlplus导入导出数据库.docx

    Oracle 数据库新建、用户创建、表空间管理、SQLPlus 导入导出数据库详解 概述: 本文档详细介绍了 Oracle 数据库的新建、用户创建、表空间管理、SQLPlus 导入导出数据库的步骤。通过逐步指导,读者可以了解 Oracle ...

    Oracle通过sqlplus连接数据库的方式

    通过sqlplus可以连接数据库根据用户权限进行数据或者设定操作,这篇文章介绍一下常用的连接方式。 环境准备 使用Oracle的精简版创建docker方式的demo环境,详细可参看: https://www.jb51.net/article/153533.htm ...

    SQLplus&数据库对象

    【SQLplus&数据库对象】是Oracle数据库管理中的重要概念,主要涵盖了使用SQL*PLUS这个工具以及Oracle数据库的各种数据类型和对象。SQL*PLUS是Oracle提供的一种命令行接口,用于交互式地操作和管理数据库,包括执行...

    sqlplus登录Oracle的四种方法

    本文将详细讲解通过Sqlplus、PL/SQL Developer、iSqlPlus三种工具以及命令行方式登录Oracle数据库的四种方法。 首先,Sqlplus是Oracle提供的一种命令行接口,用于连接到Oracle数据库进行查询、管理等操作。以下是...

    Oracle SQL Developer连接报错(ORA-12505)的解决方案(两种)

    之前用PL/SQL DEVELOPER和SQLPLUS 登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接,出现ORA-12505错误listener does not currently know of SID given in connect descriptor

    不安装oracle客户端用sqlplus连接数据库(三文件打包下载)包内有安装方法

    instantclient-basic-windows.x64-11.2.0.4.0 instantclient-sqlplus-windows.x64-11.2.0.4.0 instantclient-sdk-windows.x64-11.2.0.4.0 三文件打包下载,包内有配置方法 为什么不能自己定积分,定1个积分就行了,...

    数据库21的答案

    使用 SQLPlus 登录数据库的命令及参数解释** - **命令格式**:`sqlplus username/password@SID` - `sqlplus`:调用 Oracle 的 SQLPlus 工具。 - `username`:登录数据库的用户名。 - `password`:对应用户的...

    sqlplus登录oracle的四种方法

    sqlplus工具、sqlplus命令、pl/sql及isqlplus登录oracle的四种方法

    sqlplus 命令大全 oracle 数据库 命令查询

    SQLPlus 是 Oracle 数据库的客户端工具,用于与 Oracle 数据库进行交互。在 SQLPlus 中,可以运行 SQL 语句和 SQLPlus 命令。SQL 语句包括 DML、DDL、DCL 语句,它们执行完后,都可以保存在一个称为 SQL buffer 的...

    oracle实验1-oracle-基本操作.doc

    3. 在DOS环境中使用SQLPLUS登录数据库,并切换用户:通过不同的连接语法,可以连接到本地或远程的数据库实例,且可以以SYSDBA权限登录,这提供了更高级的系统管理权限。 三、实验环境 实验是在虚拟机上的Windows...

    sqlplus用户登录

    对于DBA(数据库管理员)和其他用户来说,掌握如何使用SQLPlus登录是非常必要的。本文将详细介绍SQLPlus中的不同登录方式及其应用场景,并对其中涉及的关键概念进行解释。 #### 二、SQLPlus登录方式详解 SQLPlus提供...

    登录Oracle数据库.ppt

    本文档介绍了登录Oracle数据库的三种方式:SQLPLUS直接登录、命令行方式登录和PL/SQL方式登录。 SQLPLUS直接登录 SQLPLUS是一个命令行工具,用于连接和管理Oracle数据库。要使用SQLPLUS登录Oracle数据库,需要打开...

    sqlplus登录oracle的四种方法.pdf

    本文将详细介绍四种使用SQLPlus登录Oracle数据库的方法。 1. Sqlplus工具登录Oracle数据库 (1) 本机ORCL数据库:在本地机器上,如果你的数据库实例名为ORCL,你可以直接在命令行输入`sqlplus username/password@...

    6.1、sqlplus登录问题1

    在Linux或Unix系统上,我们通常使用`sqlplus`命令来登录数据库用户,如示例中的`sqlplus scott/scott`。然而,这种直接输入用户名和密码的方式存在安全隐患,因为通过`ps`命令可以轻易地查看到正在运行的进程,包括...

    dos和sqlplus导出oracle数据库_用户和表

    Oracle数据库导出和导入使用dos命令和sqlplus Oracle数据库是一种关系数据库管理系统,广泛应用于企业级应用系统中。为了完成数据库的备份和恢复,Oracle提供了exp和imp两个工具,分别用于导出和导入数据库数据。...

    21天学通ORACLE练习题答案.doc

    3. **SQLPlus登录数据库**:通过`sqlplus username/password@SID`命令登录数据库,其中`SID`是数据库实例名,而非Net服务名。 4. **创建新表**:在SQLPlus中,通过`CREATE TABLE`语句可以定义并创建新的数据表,...

    oracle基础练习.docx

    * 使用 pl/sql developer 或 sqlplus 登录数据库,系统用户为 sys,可以以 sysdba 或 sysoper 身份登录。 * 使用 conn 命令切换用户,例如 conn 用户/密码 [as sysdba]。 六、SQL 应用 * 查询不重复的列值:使用 ...

Global site tag (gtag.js) - Google Analytics