7、Oracle通过客户端(sqlplus)登录认证用户的方式
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