- 浏览: 78961 次
文章分类
今天看了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认证。
表面上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认证。
发表评论
-
oracle之分析函数
2020-03-11 14:07 0row_number() over(partition by ... -
oracle之日期函数
2016-12-20 10:55 9601、sysdate:返回当前日期 2、add_months(d ... -
oracle之数据字典
2016-07-18 18:55 0Oracle字典视图包括 ... -
oracle之回滚和undo表空间
2016-07-12 16:19 0Oracle undo表空间爆满的解决 1. 启 ... -
oracle之dblink
2016-07-12 14:34 0有时候需要从另一 ... -
oracle之监听配置文件
2016-07-11 13:57 0listener.ora文件为配置在oracle服务器 ... -
oracle之异常学习
2016-07-05 18:22 861ORACLE异常包括预定义异常,非预定义异常,自定义异常。 1 ... -
oracle的regexp_like函数使用正则表达式
2016-07-08 10:17 9103一、正则表达式入门 1. ... -
oracle中on、where、having的区别
2016-05-27 11:49 0http://www.cnblogs.com/java-cla ... -
面试准备
2016-05-14 22:57 0web安全测试: http://blog.sina.com.c ... -
常用sql
2016-04-28 15:52 01、删除表中重复数据 方式一:rowid select * f ... -
oracle之高水位线
2016-03-24 18:25 0insert /*+append*/ into table1 ... -
oracle11g自动分区
2016-03-23 21:07 948最近工作中需要给数据库创建分区,简单学习了一下,做下笔 ... -
oracle中rowid与rownum学习
2016-03-21 16:00 0rowid与rownum 都被称为伪列,但它们的存在方 ... -
SST
2016-01-21 16:57 0会员系统通过MQ获取CDH月结账号数据代码 1、插入 插 ... -
oracle排查异常sql的一些方法
2015-11-19 15:27 1020转自http://blog.itpub.net/2315585 ... -
oracle导入导出
2015-11-13 18:37 0Oracle数据导入导出imp/exp就相当于oracle数据 ... -
oracle索引学习
2015-11-12 16:45 0一、索引基础 1、索引 ... -
oracle中to_char函数转换后多出空格的问题
2015-11-06 14:50 1530今天编写往数据库中插入200万数据的存储过程,遇到to ... -
好的网站
2015-09-11 13:54 0plsql开发笔记和小结 http://www.blogjav ...
相关推荐
"Sqlplus 登录数据库" Sqlplus 是 Oracle 数据库管理系统中的一种命令行工具,用于与 Oracle 数据库进行交互。Sqlplus 登录数据库是指使用 Sqlplus 工具连接到 Oracle 数据库的过程。在这个过程中,用户需要输入...
本文将详细介绍如何使用sqlplus登录Oracle数据库,包括四种主要的方法。 1. Sqlplus工具登录Oracle数据库 (1) 本机orcl数据库:在命令行界面输入`sqlplus username/password@instance`,例如,如果用户名和密码都...
sqlplusw 与 sqlplus 登陆数据库的方法总结主要涉及到 Oracle 数据库的登录方法,包括 sqlplusw 工具、sqlplus 命令、PL/SQL 工具和 iSqlplus 登录 oracle 数据库的方法。 首先,需要了解 Oracle 数据库的基本概念...
Oracle 数据库新建、用户创建、表空间管理、SQLPlus 导入导出数据库详解 概述: 本文档详细介绍了 Oracle 数据库的新建、用户创建、表空间管理、SQLPlus 导入导出数据库的步骤。通过逐步指导,读者可以了解 Oracle ...
通过sqlplus可以连接数据库根据用户权限进行数据或者设定操作,这篇文章介绍一下常用的连接方式。 环境准备 使用Oracle的精简版创建docker方式的demo环境,详细可参看: https://www.jb51.net/article/153533.htm ...
【SQLplus&数据库对象】是Oracle数据库管理中的重要概念,主要涵盖了使用SQL*PLUS这个工具以及Oracle数据库的各种数据类型和对象。SQL*PLUS是Oracle提供的一种命令行接口,用于交互式地操作和管理数据库,包括执行...
本文将详细讲解通过Sqlplus、PL/SQL Developer、iSqlPlus三种工具以及命令行方式登录Oracle数据库的四种方法。 首先,Sqlplus是Oracle提供的一种命令行接口,用于连接到Oracle数据库进行查询、管理等操作。以下是...
之前用PL/SQL DEVELOPER和SQLPLUS 登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接,出现ORA-12505错误listener does not currently know of SID given in connect descriptor
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个积分就行了,...
使用 SQLPlus 登录数据库的命令及参数解释** - **命令格式**:`sqlplus username/password@SID` - `sqlplus`:调用 Oracle 的 SQLPlus 工具。 - `username`:登录数据库的用户名。 - `password`:对应用户的...
sqlplus工具、sqlplus命令、pl/sql及isqlplus登录oracle的四种方法
SQLPlus 是 Oracle 数据库的客户端工具,用于与 Oracle 数据库进行交互。在 SQLPlus 中,可以运行 SQL 语句和 SQLPlus 命令。SQL 语句包括 DML、DDL、DCL 语句,它们执行完后,都可以保存在一个称为 SQL buffer 的...
3. 在DOS环境中使用SQLPLUS登录数据库,并切换用户:通过不同的连接语法,可以连接到本地或远程的数据库实例,且可以以SYSDBA权限登录,这提供了更高级的系统管理权限。 三、实验环境 实验是在虚拟机上的Windows...
对于DBA(数据库管理员)和其他用户来说,掌握如何使用SQLPlus登录是非常必要的。本文将详细介绍SQLPlus中的不同登录方式及其应用场景,并对其中涉及的关键概念进行解释。 #### 二、SQLPlus登录方式详解 SQLPlus提供...
本文档介绍了登录Oracle数据库的三种方式:SQLPLUS直接登录、命令行方式登录和PL/SQL方式登录。 SQLPLUS直接登录 SQLPLUS是一个命令行工具,用于连接和管理Oracle数据库。要使用SQLPLUS登录Oracle数据库,需要打开...
本文将详细介绍四种使用SQLPlus登录Oracle数据库的方法。 1. Sqlplus工具登录Oracle数据库 (1) 本机ORCL数据库:在本地机器上,如果你的数据库实例名为ORCL,你可以直接在命令行输入`sqlplus username/password@...
在Linux或Unix系统上,我们通常使用`sqlplus`命令来登录数据库用户,如示例中的`sqlplus scott/scott`。然而,这种直接输入用户名和密码的方式存在安全隐患,因为通过`ps`命令可以轻易地查看到正在运行的进程,包括...
Oracle数据库导出和导入使用dos命令和sqlplus Oracle数据库是一种关系数据库管理系统,广泛应用于企业级应用系统中。为了完成数据库的备份和恢复,Oracle提供了exp和imp两个工具,分别用于导出和导入数据库数据。...
3. **SQLPlus登录数据库**:通过`sqlplus username/password@SID`命令登录数据库,其中`SID`是数据库实例名,而非Net服务名。 4. **创建新表**:在SQLPlus中,通过`CREATE TABLE`语句可以定义并创建新的数据表,...
* 使用 pl/sql developer 或 sqlplus 登录数据库,系统用户为 sys,可以以 sysdba 或 sysoper 身份登录。 * 使用 conn 命令切换用户,例如 conn 用户/密码 [as sysdba]。 六、SQL 应用 * 查询不重复的列值:使用 ...