oracle的認證機制
Oracle資料庫究竟使用OS認證還是口令檔案認證來進行管理取決於下面三個因素:
1.SQLNET.ORA引數檔案中的引數SQLNET.AUTHENTICATION_SERVICES設定
2.PFILE(SPFILE)引數檔案中的引數REMOTE_LOGIN_PASSWORDFILE設定
3.口令檔案orapw$SID(Linux) | PWD$SID.ora(Windows)
1.SQLNET.ORA引數檔案中的引數SQLNET.AUTHENTICATION_SERVICES設定
2.PFILE(SPFILE)引數檔案中的引數REMOTE_LOGIN_PASSWORDFILE設定
3.口令檔案orapw$SID(Linux) | PWD$SID.ora(Windows)
Oracle許可權認證的基本順序是這樣的,先由SQLNET.AUTHENTICATION_SERVICES的設定值來決定是使用OS認證還是口令檔案認證,
如果使用口令檔案認證的話就要看後面兩個條件了:
如果REMOTE_LOGIN_PASSWORDFILE引數設定為非NONE,而且口令檔案存在的話就能正常使用口令檔案認證,否則將會失敗。
如果使用口令檔案認證的話就要看後面兩個條件了:
如果REMOTE_LOGIN_PASSWORDFILE引數設定為非NONE,而且口令檔案存在的話就能正常使用口令檔案認證,否則將會失敗。
SQLNET.AUTHENTICATION_SERVICES引數
在SQLNET.ORA(位於$ORACLE_HOME/network/admin目錄中)檔案中,需要修改時直接用文字編輯器開啟修改就行了,
對於不同的作業系統SQLNET.AUTHENTICATION_SERVICES的取值會有些不一樣,通常我們會用到下面的一些設定值:
linux下 none all nts 不設定 四種情況
啟動監聽 lsnrctl start 用於網路連線 走密碼檔案
將sys的密碼設定成a
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=a force=y
linux平臺測試
第一種預設情況 沒設定或者設定成BEQ
[oracle@dba admin]$ grep -v '#' sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
[oracle@dba admin]$
$ sqlplus sys/a@db10 as sysdba
可以登入
$ sql / as sysdba
可以登入
結論: 沒設定或值為BEQ時 密碼認證和OS認證都啟用
$ sqlplus sys/a@db10 as sysdba
可以登入
$ sql / as sysdba
可以登入
結論: 沒設定或值為BEQ時 密碼認證和OS認證都啟用
第二種情況 設定成none
[oracle@dba admin]$ grep -v '#' sqlnet.ora
[oracle@dba admin]$ grep -v '#' sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.AUTHENTICATION_SERVICES=(none)
SQLNET.AUTHENTICATION_SERVICES=(none)
[oracle@dba admin]$
[oracle@dba admin]$ sqlplus /nolog
[oracle@dba admin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Apr 30 04:35:02 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
ERROR:
ORA-01031: 許可權不足
ERROR:
ORA-01031: 許可權不足
SQL> conn sys/a as sysdba
Connected.
SQL>
SQL> conn sys/a@db10 as sysdba
Connected.
SQL>
結論: (none) OS認證被遮蔽 必須走密碼檔案認證
第三種情況 設定成all
SQL> conn / as sysdba
Connected.
SQL> conn / as sysdba
Connected.
Warning: You are no longer connected to ORACLE.
SQL>
結論: all 密碼檔案認證被遮蔽 只能OS認證
第四種情況 設定nts
[oracle@dba admin]$ grep -v '#' sqlnet.ora
第四種情況 設定nts
[oracle@dba admin]$ grep -v '#' sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.AUTHENTICATION_SERVICES=(nts)
SQLNET.AUTHENTICATION_SERVICES=(nts)
[oracle@dba admin]$
SQL> conn / as sysdba
ERROR:
ORA-01031: 許可權不足
ERROR:
ORA-01031: 許可權不足
結論: nts只能密碼檔案認證
windows平臺測試
windows平臺測試
第一種 預設情況 設定nts
SQL> conn / as sysdba
已連線。
SQL> alter user sys identified by a;
SQL> conn / as sysdba
已連線。
SQL> alter user sys identified by a;
使用者已更改。
SQL> conn / as sysdba
已連線。
SQL> conn sys/a as sysdba
已連線。
SQL> conn sys/a@orawin as sysdba
已連線。
SQL>
結論: 設定nts(和linux不一致) 密碼和OS認證都啟用
已連線。
SQL> conn sys/a as sysdba
已連線。
SQL> conn sys/a@orawin as sysdba
已連線。
SQL>
結論: 設定nts(和linux不一致) 密碼和OS認證都啟用
第二種 設定成none
SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges
ERROR:
ORA-01031: insufficient privileges
SQL> conn sys/a as sysdba
已連線。
SQL> conn sys/a@orawin as sysdba
已連線。
SQL>
結論: 設定成none(和linux一致) 只能密碼認證 OS認證被遮蔽
第三種 設定成 all
SQL> conn / as sysdba
ERROR:
ORA-12641: 驗證服務無法初始化
ERROR:
ORA-12641: 驗證服務無法初始化
SQL> conn sys/a as sysdba
ERROR:
ORA-12641: 驗證服務無法初始化
結論: 此引數在windows下 OS和密碼認證都遮蔽了
第四種 不設定
SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges
ERROR:
ORA-01031: insufficient privileges
第五種 設定成beq
SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges
警告: 您不再連線到 ORACLE。
SQL> conn sys/a as sysdba
已連線。
SQL> conn sys/a@orawin as sysdba
已連線。
SQL>
結論:只能使用密碼認證 OS認證被遮蔽
REMOTE_LOGIN_PASSWORDFILE引數
此係統引數的設定制定了資料庫使用口令檔案的方法,此引數可以設定的值有三個:
此係統引數的設定制定了資料庫使用口令檔案的方法,此引數可以設定的值有三個:
REMOTE_LOGIN_PASSWORDFILE = NONE
不使用口令檔案
不使用口令檔案
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE
使用口令檔案,但只有一個資料庫例項可用使用
使用口令檔案,但只有一個資料庫例項可用使用
REMOTE_LOGIN_PASSWORDFILE = SHARED
多個資料庫例項共用一個口令檔案,這種設定下是不能增加其他資料庫使用者作為特殊許可權使用者到口令檔案中的。
多個資料庫例項共用一個口令檔案,這種設定下是不能增加其他資料庫使用者作為特殊許可權使用者到口令檔案中的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26077805/viewspace-702791/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP的HTTP認證機制PHPHTTP
- REST API簽名認證機制RESTAPI
- HTTPS 加密與認證機制HTTP加密
- 理解OIDC協議和認證機制協議
- 【轉】基於Token的WEB後臺認證機制Web
- 如何修改MongoDB3.0的資料庫認證機制MongoDB資料庫
- Oracle 登入的三種驗證機制Oracle
- Oracle服務端驗證機制Oracle服務端
- 跟我一起學Go系列:Go gRPC 安全認證機制-SSL/TLS認證GoRPCTLS
- egg基於jsonwebtoken的Token實現認證機制JSONWeb
- 必須看的ppt,講述許可權認證的機制
- 計算機認證公司的認證網址 (轉)計算機
- Oracle 認證網Oracle
- 『居善地』介面測試 — 10、介面測試的認證機制
- 淺談 Cookie-Session 、Jwt 兩種身份認證機制CookieSessionJWT
- Oracle中兩種認證方式:OS認證與口令檔案認證Oracle
- oracle os認證和口令檔案認證的簡要解析Oracle
- Oracle 認證下載Oracle
- Oracle OCM 認證指南Oracle
- oracle account 外部認證Oracle
- HTTP權威指南學習-第12章 基本認證機制HTTP
- 【登陸認證】oracle的作業系統認證和口令檔案認證方式(轉載)Oracle作業系統
- Oracle OS認證與口令檔案認證詳解Oracle
- oracle無法用oracle認證的問題Oracle
- Oracle中的鑑權口令認證Oracle
- ca 證書機制
- 深入Spring Security-獲取認證機制核心原理講解Spring
- Oracle 認證大師(OCM)Oracle
- oracle登陸認證方式Oracle
- Oracle認證常識(轉)Oracle
- oracle認證的學習總結(一)Oracle
- RabbitMQ 訊息確認機制MQ
- 全面認識Flex事件機制Flex事件
- 自己整理的oracle登陸的認證方式。Oracle
- Oracle OS 認證, 口令檔案Oracle
- Oracle 作業系統認證Oracle作業系統
- 關於ORACLE登陸認證Oracle
- Oracle作業系統認證Oracle作業系統