select version from v$instance;

#查看当前数据库的版本

192.168.31.5:1521/orcl

7.1、操作系统认证:

1、Oracle认为操作系统用户是可靠的,那么既然你能登录到操作系统,必然也能登录到数据库;

我们在安装数据库时,采用了默认的安装方式,使用操作系统认证登录到数据库,所以在使用sysdba方式

认证登录时,无论密码对错,均可以登录到数据库;

[oracle@slave-node2 ~]$ sqlplus /nolog

#表示不进行登录,只进入sqlplus;

SQL> conn /as sysdba;

#连接到超级管理员;

7.2、口令文件认证:

1、Oracle认为操作系统用户是不可靠的,如果要访问数据库,必须再次使用密码认证;

2、linux下的认证规则:

[oracle@slave-node2 ~]$ ls /application/Oracle11gR2/product/11.2.0/db_1/network/admin/

listener19080211PM1933.bak samples sqlnet19080211PM1933.bak tnsnames19080211PM1934.bak

listener.ora shrept.lst sqlnet.ora tnsnames.ora

[oracle@slave-node2 admin]$ cat sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

ADR_BASE = /application/oracle

默认情况下,linux下的oracle数据库sqlnet.ora文件没有"SQLNET.AUTHENTICATION_SERVICES"参数,此时是

基于操作系统认证和oracle密码验证共存的,加上"SQLNET.AUTHENTICATION_SERVICES"参数后,不管

"SQLNET.AUTHENTICATION_SERVICES"设置为NONE或者NTS,都是基于oracle密码验证的;

3、windows的认证规则:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

#基于操作系统验证,默认;

SQLNET.AUTHENTICATION_SERVICES= (NONE)

#基于Oracle验证;

SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)

#二者共存;

7.3、sys用户和system用户的区别:

1、system用户:

是数据库内置的一个普通管理员,没有创建数据库实例的权限,手工创

建的任何用户在被授予dba角色后都跟这个用户差不多;

2、sys用户:

是数据库的超级用户,有创建数据库实例的权限,数据库内很多重要的东

西(数据字典表、内置包、静态数据字典视图等)都属于这个用户,sys用户必须

以sysdba身份登录,system用户以sysdba身份登录时就是sys,这一点,登陆

后执行"show user"命令可以验证;

7.4、sqlplus的登录方式:

sqlplus是数据库客户端网络服务上的,可以通过sqlplus远程到数据库;

[oracle@slave-node2 ~]$ echo $ORACLE_SID

orcl

#查看当前的数据库实例;

1、不在cmd或者terminal当中暴露密码的登录方式:

[oracle@slave-node2 ~]$ sqlplus /nolog

#表示不进行登录,只进入sqlplus;

SQL> conn /as sysdba;

#连接到超级管理员;

#连接到数据库超级管理员sys,默认连接的是第一个数据库实例;

#由于使用的是操作系统认证,所以任何用户都能够连接到sys;

2、使用tns别名方式登录:

(1)以sys账号登录:

[oracle@slave-node2 ~]$ sqlplus sys/123456@oa as sysdba

(2)以system账号登录:

[oracle@slave-node2 ~]$ sqlplus system/123456@oa