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

通过sqlplus可以连接数据库根据用户权限进行数据或者设定操作,这篇文章介绍一下常用的连接方式。

环境准备

使用Oracle的精简版创建docker方式的demo环境,详细可参看:

  • https://www.jb51.net/article/153533.htm

方式1(本机): / as sysdba

在oracle服务器,可以直接通过操作系统权限认证,使用sysdba方式登陆,前提是你可以登入服务器,并且拥有此权限。

oracle@e871d42341c0:~$ id
uid=1000(oracle) gid=1000(dba) groups=1000(dba)
oracle@e871d42341c0:~$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Sun Oct 21 08:20:51 2018
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> show user
USER is "SYS"
SQL> 

方式2(本机): sqlplus 用户名/密码

在本机除了sysdba,还可以通过用户名和密码的方式登陆进来

oracle@e871d42341c0:~$ sqlplus system/liumiao123
SQL*Plus: Release 11.2.0.2.0 Production on Sun Oct 21 08:21:27 2018
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> show user
USER is "SYSTEM"
SQL>

方式3: 通过tnsname方式

通过tns设定,保证联通性的情况下使用 sqlplus 用户名/密码@Oracle实例名 的方式进行连接。

确认tns连接通畅

oracle@e871d42341c0:~$ tnsping XE
TNS Ping Utility for Linux: Version 11.2.0.2.0 - Production on 21-OCT-2018 10:32:55
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = e871d42341c0)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))
OK (0 msec)
oracle@e871d42341c0:~$

确认oracle的监听进程正常启动

oracle@e871d42341c0:~$ ps -ef |grep lsnr |grep -v grep
oracle   27   1 0 Oct16 ?    00:00:28 /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr LISTENER -inherit
oracle@e871d42341c0:~$ 

连接

oracle@e871d42341c0:~$ sqlplus system/liumiao123@XE
SQL*Plus: Release 11.2.0.2.0 Production on Sun Oct 21 10:34:04 2018
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> show user
USER is "SYSTEM"
SQL> 

方式4: IP和port的方式定位

还可通过IP和port的方式定位Oracle实例进行连接:sqlplus 用户名/密码@//IP地址或者hostname:端口号/Oracle实例名

# netstat -tunlp |grep 1521
tcp6    0   0 :::1521         :::*          LISTEN   -
# ip ad |grep 172.17
  inet 172.17.0.2/16 scope global eth0
# sqlplus system/abcd1234@//172.17.0.2:1521/XE
SQL*Plus: Release 11.2.0.2.0 Production on Sun Oct 21 10:37:31 2018
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> 

方法5: 使用nolog 和 connect实现连接

准确的来说,这种方式和方式2/方式3/方式4没有本质区别,无非就是用户名/密码以及实例名的信息的写法不同而已,详细如下:

# sqlplus /nolog
SQL*Plus: Release 11.2.0.2.0 Production on Sun Oct 21 11:19:50 2018
Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> connect system/liumiao123
Connected.
SQL> connect system/liumiao123@XE
Connected.
SQL> connect system/liumiao123@//172.17.0.2:1521/XE
Connected.
SQL> show user
USER is "SYSTEM"
SQL>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Oracle基础:通过sqlplus执行sql语句后的结果进行判断

    这篇文章介绍一下如何对sqlplus执行的sql语句结果进行判断. 环境准备 使用Oracle的精简版创建docker方式的demo环境,详细可参看: https://www.jb51.net/article/153533.htm 常见问题 在sqlplus中执行sql语句,如果直接使用命令行的方式调用时会碰到两个问题: 问题1: 需要进行交互性的输入 问题2:结果的判断不能通过返回值来确认 解决方式 在脚本调用里,解决方式如下 问题1可以通过前文提到的Here Document来解决. 问题2

  • oracle查询锁表及解锁,修改表字段名与复制表结构和数据的方法

    在Oracle中查询锁表及解锁: 锁表查询的代码有以下的形式: select count(*) from v$locked_object; select * from v$locked_object; 查看哪个表被锁: select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id; 查看是哪个session引起

  • Oracle相关组件版本信息的介绍

    这系列文章将介绍一下Oracle的基础知识,将会使用docker下运行的oracle11g的精简版进行说明.这篇文章介绍一下oracle的版本确认方法. 环境准备 使用Oracle的精简版创建docker方式的demo环境,详细可参看: https://www.jb51.net/article/153533.htm v$version视图 通过确认v$version视图的BANNER信息可以确认Oracle各组件的版本信息 SQL> select * from v$version; BANNER

  • oracle常用分析函数与聚合函数的用法

    今天是2019年第一天,在此祝大家新年快乐,梦想还在路上,让我们继续加油! 应之前的计划,今天完成这篇记录,也借此记录自己的成长. 一.几个排名函数的语法和用法: rank ( )  over ([partition by col]  order by col ) dense_rank ( )  over ([partition by col] order  by col ) rownumber ( )  over ( [partition by col] order by col ) rank

  • Oracle数据库自动备份脚本分享(超实用)

    前言 众所周知数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们只有一台数据库服务器的,暂时采取最简单的备份策略,export出dmp进行保存. 一.备份脚本 1.初始化变量,记录开始日志 #变量 sysname=填写自己的系统名称 syspath=/home/oracle/databak/$sysname v_date=$(date '+%Y%m

  • ibatis结合oracle批量插入三种方法的测评

    第一种 < insert id =" insert_table " parameterClass ="java.util.List" > <![CDATA[ insert into sj_test( col1 , col2 , col3 ) values ]]> < iterate conjunction ="," > <![CDATA[ (#test[]. col1 #, # test []. col2

  • Oracle全角数字转换半角数字

    数据库表 test 字段 id name age 全角数字:1234 半角数字:1234 length和lengthb的区别: length(1234) 4 lengthb(1234) 8 to_single_byte函数用法: to_single_byte(1234) 1234 查找所有全角的数字: select age from test where lengthB(age) >4 替换全角的为半角的: update test t1 set t1.age = (select to_singl

  • Oracle密码过期如何取消密码180天限制及密码180天过期,账号锁住的问题

    Oracle密码过期,取消密码180天限制 1.进入sqlplus模式 sqlplus / as sysdba; 2.查看用户密码的有效期设置(一般默认的配置文件是DEFAULT) SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; 3.将密码有效期由默认的180天修改成"无限制",修改之后不需要重启动数据库,会立即生效 ALTER PROFILE DEFA

  • Oracle连续相同数据的统计

    有些事情始终是需要坚持下去的... 今天复习一下之前用到的连续相同数据的统计. 首先,创建一个简单的测试表,这里过程就略过了,直接上表(真的是以简单为主,哈哈-) 第一种写法row_number(): SELECT val,COUNT(*) FROM (SELECT ID,val, row_number() OVER(ORDER BY ID)-row_number() OVER(PARTITION BY val ORDER BY ID) x FROM LCY ) GROUP BY val,x O

  • Oracle数据库url连接最后一个orcl代表的是配置的数据库SID

    今天生产上项目启动访问 一个数据库的时候,出现了 ORA-12505, TNS:listener does not currently know of SID given in connect desc . 后面看了下,我的数据库配置为: driverClassName=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@158.58.88.102:1521:eskdb username=root password=aaa111 然后看了下

随机推荐