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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB身份認證機制揭秘!MongoDB
- HTTPS 加密與認證機制HTTP加密
- REST API簽名認證機制RESTAPI
- 理解OIDC協議和認證機制協議
- egg基於jsonwebtoken的Token實現認證機制JSONWeb
- Oracle 認證下載Oracle
- 跟我一起學Go系列:Go gRPC 安全認證機制-SSL/TLS認證GoRPCTLS
- 『居善地』介面測試 — 10、介面測試的認證機制
- 淺談 Cookie-Session 、Jwt 兩種身份認證機制CookieSessionJWT
- 網路實名制、電商實名認證、身份證實名認證介面
- 深入Spring Security-獲取認證機制核心原理講解Spring
- HTTP權威指南學習-第12章 基本認證機制HTTP
- ca 證書機制
- Oracle認證介紹及入門心得Oracle
- kubernetes實踐之七:安全機制API Server認證之Service Account TokenAPIServer
- 深入Spring Security魔幻山谷-獲取認證機制核心原理講解(新版)Spring
- RabbitMQ 訊息確認機制MQ
- Oracle RMAN 連線資料庫認證方法Oracle資料庫
- 酒店賓館無線上網認證手機認證方式
- 選擇檢測機構,有CNAS認證和沒CNAS認證的區別
- 在去Oracle環境下,市場還認可OCP認證嗎?Oracle
- Oracle Goldengate(ogg) 12c認證考試流程OracleGo
- 透過Kerberos認證訪問Oracle11gROSOracle
- 給 SAP BTP 平臺上的 Java 應用增添使用者登入和認證機制Java
- 故障分析 | 從一則錯誤日誌到 MySQL 認證機制與 bug 的深入分析MySql
- 無規矩不成方圓,直播原始碼的認證機制給直播帶貨上了一課原始碼
- Oracle SCN機制詳細解讀Oracle
- Basic認證和Bearer Token認證的區別
- 對講機SRRC認證辦理
- 通過 Oracle_Cloud_Infrastructure oci 雲認證考試OracleCloudASTStruct
- Java三網手機號實名認證介面、實名認證API呼叫JavaAPI
- Android之window機制token驗證Android
- 驗證碼機制之驗證碼重複使用
- JAVA訊息確認機制之ACK模式Java模式
- 手機產品申請CB認證
- Oracle OCP和MySQL OCP認證考試內容有哪些?OracleMySql
- drf的JWT認證JWT
- 【認證與授權】2、基於session的認證方式Session
- 2020 從新開始:你應該知道的Oracle認證新變化Oracle