Oracle使用SQL*Plus连接数据库
使用sqlplus连接数据库
A方式1
1.开启SQL*Plus,但不连接到数据库
$ sqlplus /NOLOG
2.连接到数据库
CONN[ECT] [logon] [AS {SYSOPER | SYSDBA}]
其中logon为
{username[/passwd] | /}[@connect_identifier] [edition={edition_name | DATABASE_DEFAULT}]
说明:
/:用于连接请求的外部认证,这种验证类型不需要数据库密码。最常见的外部认证形式为操作系统认证。数据库用户由已登录主机操作系统的主机帐号验证并授权
AS {SYSOPER | SYSDBA}:用户以SYSOPER、SYSDBA系统权限连接.仅某些预定义的管理员用户或添加到密码文件的用户可以如此方式连接
username:合法数据库用户名。
passwd:合法数据库用户密码,如果不指定,且不是以AS SYSDAB方式登录时,会弹出密码输入提示
connect_identifier:Oracle网络连接标示符,用于远程连接。如果忽略,sqlplus连接到本地实例。常用连接标示符为网络服务名(net service name).网络服务名为Oracle网络连接描述符的别名(网络地址和数据库服务名)。通常通过解析本地主机上的tnsnames.ora文件得到网络服务名。
connect_identifier的简易语法:
"host:[port][/service_name][:server][/instance_name]"
注:指定/service_name选项,可不在(本地)电脑客户端上配置Oracle网络服务
host:远程数据库主机IP或主机名
port:Oracle网络监听器监听的端口
service_name:要连接的数据库服务名。如果远程数据库网络服务监听器配置了缺省的服务名,可以忽略,否则必须提供。通常每个数据库提供了一个和全局数据库名相同的服务名。全局数据库名由DB_NAME和DB_DOMAIN初始参数组成:DB_NAME.DB_DOMAIN,如果DB_NAME为orcl,DB_DOMAIN为us.example.com,那么标准服务名为orcl.us.example.com
server:服务处理器类型,可接受值含dedicated(专用服务器)、shared(共享服务器)、pooled(共享池)
instance_name:指定要连接的实例。
edition={edition_name | DATABASE_DEFAULT}:指定启动数据库会话时版本。如果指定版本,则该版本必须存在且拥有对它的USE权限,不指定则使用默认版本。
注:这个比较少用
B方式2
将方式1中的两步合并为一步
sqlplus [logon] [AS {SYSOPER | SYSDBA}]
例1:以SYSTEM用户身份连接
SQL> conn system
Enter password:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
输出说明:因为此时数据库没开启,所以报错
例2:以具有SYSDBA权限的SYS用户身份连接到一个本地数据库
SQL>CONNECTSYS AS SYSDBA
Enter password:
Connected to an idle instance.
说明:以SYS用户身份连接,必须指定AS SYSDBA
例3:使用操作系统认证,以SYSDBA特权进行本地连接
SQL>CONNECT / AS SYSDBA
Connected to an idle instance
----------------远程连接(未在本地客户端上配置SERVICE_NAME)------------------
例4:以testacc用户身份,并指定用户密码(abc123),监听端口号,远程连接到运行于主机172.25.75.14上,数据库服务名为oracl11g的数据库
SQL> CONNECT testacc/abc123@"172.25.75.14:1521/orcl11g"
Connected.
注意:
1.如果未在本地客户端上配置tnsname.ora文件,则必须指定服务名,否则会报错误,如下:
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
2.如果未在本地客户端上配置tnsname.ora文件,如果涉及远程连接,则必须指定服务名
例5:不指定用户密码外
SQL> CONNECT testacc@"172.25.75.14:1521/orcl11g"
Enter password:
Connected.
例6:指定实例名
SQL> CONNECT testacc/abc123@"172.25.75.14:1521/orcl11g/orcl11g"
Connected.
注:这里有两个oracl11g,从左到右,第一个是服务名SERVICE_NAME,第二个是实例名,以下例子也一样
例7:指定服务器类型
SQL> CONNECT testacc/abc123@"172.25.75.14:1521/orcl11g:server/orcl11g"
Connected.
例8:不指定端口号
SQL> CONNECT testacc/abc123@"172.25.75.14/orcl11g"
Connected.
例9:不指定实例名,指定服务器类型
SQL> CONNECT testacc/abc123@"172.25.75.14:1521/orcl11g:server"
Connected.
例10:以sqlplus一步到位方式连接
d:\>sqlplus testacc/abc123@"172.25.75.14:1521/orcl11g:server/orcl11g"
SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 18 10:18:51 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
-----------------------end----------------------
参考链接:
http://docs.oracle.com/cd/E11882_01/server.112/e25494/start.htm#ADMIN004