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