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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle常見身份驗證Oracle
- javascript 驗證身份證JavaScript
- WEB身份驗證Web
- 身份證驗證工具類
- JS驗證身份證的合法性JS
- PHP 驗證身份證號碼PHP
- 中國身份證號驗證庫
- C++身份證號驗證C++
- C#驗證身份證號C#
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- 作業系統身份驗證和口令檔案身份驗證總結作業系統
- js正則驗證身份證號JS
- PHP 身份證精確匹配驗證PHP
- 身份證號碼驗證系統
- 身份證號碼之js驗證JS
- 關於Java Mail的身份驗證!JavaAI
- 資料庫的身份驗證方式資料庫
- Ext實現的身份證格式驗證程式碼
- java 實現從15位~18位的身份證號碼轉換,校驗中國大陸公民身份證、香港居民身份證、澳門身份證和臺灣身份證。Java
- 身份證號碼驗證演算法演算法
- js實現身份證號碼驗證JS
- jQuery正則驗證15/18身份證jQuery
- asp.core 同時相容JWT身份驗證和Cookies 身份驗證兩種模式JWTCookie模式
- javascript身份證號碼校驗JavaScript
- 使用java完成ldap身份驗證JavaLDA
- C# Web Service 身份驗證C#Web
- 7-3 查驗身份證
- 身份證校驗碼的計算方法
- asp.net 角色身份驗證的使用ASP.NET
- Apache基於MySQL的身份驗證(轉)ApacheMySql
- JS驗證18位身份證號的正確性JS
- javascript實現的身份證號碼驗證程式碼JavaScript
- win10 的windows身份驗證怎麼開啟_win10怎麼進行身份驗證Win10Windows
- 2.13.3 使用 Oracle Wallet 實現在DBCA中使用身份驗證Oracle
- 精確驗證身份證號碼程式碼
- javascript 驗證身份證完全版,根據身份證獲取性別年齡JavaScript
- 高鐵車站的身份驗證系統核心
- JS校驗身份證號的合法性JS