Oracle的身份驗證
Oracle 身份驗證方式有如下幾種:
一、作業系統身份驗證
這種身份驗證說白了就是通過作業系統使用者登入資料庫,但是有一個前提不能忽視,即該作業系統使用者必須為dba(Linux系統)或ORA_DBA組成員。說的更直接一點,也就是oracle使用者了,呵呵!在Oracle中通過兩個引數決定使用者的身份驗證是否為作業系統身份驗證,這兩個引數說明如下:
1、SQLNET.AUTHENTICATION_SERVICES,該引數的取值為:
2、remote_login_passwordfile,該引數為資料庫初始化引數,其取值為:
登入限制:只能在本地使用。
二、口令檔案身份驗證
口令檔案身份驗證就是通過記錄在口令檔案中的使用者賬號和密碼實現登入資料庫的操作,oracle的口令檔案存放位置為:$ORACLE_HOME/dbs/orapwORACLE_SID,該檔案可以通過orapwd工具手動建立。
對於口令檔案身份驗證,我想只要理解了remote_login_passwordfile的exclusive和shared引數值的含義後,那麼一切問題就迎刃而解了。那麼讓我們用以下試驗來說明吧!
試驗一:
向口令檔案中新增一個使用者。
SQL> show parameter remote_login_passwordfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
OK,這是Oracle預設值!
接下來檢視一下口令檔案中的使用者數:
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
下面我們來給一個使用者授權:
SQL> grant sysdba to eric;
執行完後看看會發生什麼變化,再次查詢v$pwfile_users檢視:
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
ERIC TRUE FALSE FALSE
試驗二:
使用口令檔案登記使用者遠端啟動資料庫。在實驗中使用windows登入虛擬機器的一個空閒例項,然後啟動資料庫。
C:\Users\Manganese>sqlplus eric/eric@prac as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 3月 5 21:09:56 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
已連線到空閒例程。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 839282688 bytes
Fixed Size 2217992 bytes
Variable Size 499124216 bytes
Database Buffers 335544320 bytes
Redo Buffers 2396160 bytes
資料庫裝載完畢。
資料庫已經開啟。
實驗三:
當remote_login_passwordfile=shared時,向口令檔案中新增使用者。
SQL> show parameter remote_login_passwordfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string SHARED
SQL> grant sysdba to scott;
grant sysdba to scott
*
ERROR at line 1:
ORA-01999: password file cannot be updated in SHARED mode
看吧,報錯了,不能新增使用者的,我在前面已經做了說明。
三、參考資料
Oracle的官方文件:http://docs.oracle.com/cd/B28359_01/server.111/b28310/dba007.htm#ADMIN10241
- 作業系統身份驗證
- 口令檔案驗證
- 口令身份驗證
- 外部身份驗證
- 全域性身份驗證
一、作業系統身份驗證
這種身份驗證說白了就是通過作業系統使用者登入資料庫,但是有一個前提不能忽視,即該作業系統使用者必須為dba(Linux系統)或ORA_DBA組成員。說的更直接一點,也就是oracle使用者了,呵呵!在Oracle中通過兩個引數決定使用者的身份驗證是否為作業系統身份驗證,這兩個引數說明如下:
1、SQLNET.AUTHENTICATION_SERVICES,該引數的取值為:
- NONE:遮蔽作業系統身份驗證
- NTS:特指windows環境中的作業系統身份驗證
- ALL:兩種方式皆可。
2、remote_login_passwordfile,該引數為資料庫初始化引數,其取值為:
- NONE:不使用口令檔案。
- EXCLUSIVE:只有一個例項能使用密碼檔案。
- SHARED:可以有多個例項使用密碼檔案,但是口令檔案只能識別SYS使用者。
登入限制:只能在本地使用。
二、口令檔案身份驗證
口令檔案身份驗證就是通過記錄在口令檔案中的使用者賬號和密碼實現登入資料庫的操作,oracle的口令檔案存放位置為:$ORACLE_HOME/dbs/orapwORACLE_SID,該檔案可以通過orapwd工具手動建立。
對於口令檔案身份驗證,我想只要理解了remote_login_passwordfile的exclusive和shared引數值的含義後,那麼一切問題就迎刃而解了。那麼讓我們用以下試驗來說明吧!
試驗一:
向口令檔案中新增一個使用者。
SQL> show parameter remote_login_passwordfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
OK,這是Oracle預設值!
接下來檢視一下口令檔案中的使用者數:
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
下面我們來給一個使用者授權:
SQL> grant sysdba to eric;
執行完後看看會發生什麼變化,再次查詢v$pwfile_users檢視:
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
ERIC TRUE FALSE FALSE
試驗二:
使用口令檔案登記使用者遠端啟動資料庫。在實驗中使用windows登入虛擬機器的一個空閒例項,然後啟動資料庫。
C:\Users\Manganese>sqlplus eric/eric@prac as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 3月 5 21:09:56 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
已連線到空閒例程。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 839282688 bytes
Fixed Size 2217992 bytes
Variable Size 499124216 bytes
Database Buffers 335544320 bytes
Redo Buffers 2396160 bytes
資料庫裝載完畢。
資料庫已經開啟。
實驗三:
當remote_login_passwordfile=shared時,向口令檔案中新增使用者。
SQL> show parameter remote_login_passwordfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string SHARED
SQL> grant sysdba to scott;
grant sysdba to scott
*
ERROR at line 1:
ORA-01999: password file cannot be updated in SHARED mode
看吧,報錯了,不能新增使用者的,我在前面已經做了說明。
三、參考資料
Oracle的官方文件:http://docs.oracle.com/cd/B28359_01/server.111/b28310/dba007.htm#ADMIN10241
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29515435/viewspace-1101881/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 身份證驗證工具類
- 【PTA】查驗身份證
- PHP 驗證身份證號碼PHP
- C++身份證號驗證C++
- 2.13.3 使用 Oracle Wallet 實現在DBCA中使用身份驗證Oracle
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- js正則驗證身份證號JS
- python - 驗證身份證合法性Python
- 中國身份證號驗證庫
- 客戶端身份驗證客戶端
- 舊香港身份證校驗
- kafka SASL/PLAIN 身份驗證KafkaAI
- asp.core 同時相容JWT身份驗證和Cookies 身份驗證兩種模式JWTCookie模式
- 一個簡單的身份證校驗
- javascript身份證號碼校驗JavaScript
- SpringBoot整合JWT做身份驗證Spring BootJWT
- 7-3 查驗身份證
- 身份證合法性校驗
- JS驗證18位身份證號的正確性JS
- win10 的windows身份驗證怎麼開啟_win10怎麼進行身份驗證Win10Windows
- C++批次核驗身份證真偽、實名認證介面、身份證識別C++
- JS校驗身份證號的合法性JS
- node實現基於token的身份驗證
- flowable 繞過idm自帶的身份驗證
- 身份證最後一位的校驗
- 簡聊 Session 與 Token 身份驗證Session
- Rust中實現JWT身份驗證RustJWT
- 【仙山】flutter版谷歌身份驗證器Flutter谷歌
- L1-016. 查驗身份證
- Javascript使用正則驗證身份證號(簡單)JavaScript
- JavaScript身份證真偽查驗介面廠家有哪些?身份證查詢真偽JavaScript
- 高鐵車站的身份驗證系統核心
- Kerberos 身份驗證在 ChunJun 中的落地實踐ROS
- win10系統驗證身份好麻煩怎麼去掉 win10取消身份驗證方法Win10
- PAT-B 1031 查驗身份證 【字串】字串
- 7-63 查驗身份證(15 分)
- 什麼是自適應身份驗證?
- L1-016 查驗身份證 pythonPython
- gRPC(七)進階:自定義身份驗證RPC