1. 程式人生 > >[Oracle]Oracle資料庫任何使用者密碼都能以sysdba角色登入

[Oracle]Oracle資料庫任何使用者密碼都能以sysdba角色登入

* 本文相關環境:Windows 10,64位作業系統;Oracle 11gR2;toad for Oracle12.1

      最近在學習Oracle資料庫,使用Toad for Oracle來檢視資料庫的資訊,發現在以sysdba角色登入資料庫時,無論輸入什麼密碼,均可以連線到資料庫,以為是資料庫又出故障了,帶著疑問,查詢資料。發現裡面有很多的學問,下面簡單記述一下。

      Oracle認證使用者有兩種方式:作業系統認證與口令認證。作業系統認證也叫本地認證。

  • 作業系統認證:Oracle認為作業系統使用者是可靠的,那麼既然你能登入到作業系統,必然也能登入到資料庫;
  • 口令檔案認證:Oracle認為作業系統使用者是不可靠的,如果要訪問資料庫,必須再次使用密碼認證。

(一)作業系統認證

要使用作業系統認證,需要設定兩處:

(1)在sqlnet.ora檔案中設定:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

如下圖(第8行):

sqlnet

NTS特指的是windows系統。

(2)在windows中建立ora_dba組,然後把需要使用作業系統認證的使用者加到這個組中,組的開啟方式為:

控制面板->管理工具->計算機管理->本地使用者和組->組。開啟後我們可以看到相關資訊:

image

點開Ora_dba使用者組,可以看到:

image

這就可以解釋為什麼我們在使用Toad for Oracle或sqlplus等客戶端工具登入資料庫時,密碼錯誤仍然可以登入:我們在安裝資料庫時,採用了預設的安裝方式,使用作業系統認證登入到資料庫,所以在使用sysdba方式認證登入時,無論密碼對錯,均可以登入到資料庫。

這裡要注意的一點是,在使用了作業系統使用者組ora_dba裡面的使用者登入才會採用作業系統使用者登入,如果使用者不在ora_dba裡面,則無法使用作業系統使用者登入。

登陸後,可以在 SQL Plus中執行下面語句 select user from dual來檢視當前使用者:

image

發現數據庫的使用者為SYS而不是SCOTT。經過多次測試,發現從CMD以sqlplus / as sysdba登入也是相同的結果。最後發現,無論使用哪個賬戶,只要以as sysdba登入到資料庫,最終資料庫的user均為SYS。

(二)口令檔案認證

Oracle的密碼檔案包含了被授予SYSDBA和SYSOPER許可權的使用者的使用者名稱和密碼,如果要使用使用者名稱和密碼登入,則把sqlnet.ora檔案的AUTHENTICATION_SERVICES=none,或者將這句刪除或遮蔽(前面加“#”號)。使用作業系統登入資料庫的方式就會失去作用,只有給出正確的使用者名稱和密碼才能登入。

複製程式碼
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 12月 18 23:01:31 2016

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

請輸入使用者名稱:  scott as sysdba      /*以管理員方式登入*/
輸入口令:           /*輸入錯誤的口令*/   
ERROR:
ORA-01031: insufficient privileges


請輸入使用者名稱:  scott as sysdba     /*以管理員方式登入*/ 
輸入口令:     /*輸入正確的口令*/ 
ERROR:
ORA-01031: insufficient privileges


請輸入使用者名稱:  scott       /*以normal方式登入*/ 
輸入口令:    /*輸入正確的口令*/ 

連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>
複製程式碼

-完-


相關推薦

[Oracle]Oracle資料庫任何使用者密碼sysdba角色登入

* 本文相關環境:Windows 10,64位作業系統;Oracle 11gR2;toad for Oracle12.1       最近在學習Oracle資料庫,使用Toad for Oracle來檢視資料庫的資訊,發現在以sysdba角色登入資料庫時,無論輸入什麼

sysdba身份登入oracle報ORA-1031許可權不足錯誤之完美分析

在資料庫所在伺服器上登入的操作,使用的是作業系統認證方式登入資料庫例項。在出現“ORA-01031 “ 的錯誤錯誤時,首先去檢查sqlnet.ora 檔案中SQLNET.AUTHENTICATION_SERVICES 項的配置資訊。這種分析是被很多人推薦,在網際網路上也有很多帖子都提及到。 大致得到的結論是

行雲管家 V4.7產品新特性-國際化版本、支援Oracle資料庫審計、主機密碼自動修改策略 釋出日期:2018-11-22

行雲管家線上體驗: 行雲管家【官網】-領先的雲端計算管理平臺-雲安全,堡壘機,自動化運維​ 行雲管家新手有禮活動: 行雲管家新手有禮,新使用者1元即可體驗專業版-優惠券​ 釋出日期:2018-11-22 4.7版本中,行雲管家推出了國際化版本、支援Oracle的資料庫審計、主機密碼自動修改策略等

密碼雜湊值在Oracle 12c資料庫中調整

密碼雜湊值在Oracle 12c資料庫中調整 Simeon 原文連結: https://www.trustwave.com/Resources/SpiderLabs-Blog/Changes-in-Oracle-Database-12c-password-hashes/ Oracle在Oracle

忘記了oracle資料庫使用者的密碼,怎麼辦?

1:檢視環境變數ORACLE_SID的設定情況: windows: echo %ORACLE_SID% 2:設定環境變數ORACLE_SID的值為你想登入的oracle例項的SID: set ORACLE_SID=orcl 3:鍵入命令:sqlplus / as sysdba

MyBatis自身集合巢狀,遞迴查詢目錄樹(適用於MySQL、ORACLE資料庫,遞迴程式碼寫在XML中,通過SQL完成)

JAVA程式碼實現(連結):MySql、Oracle(通用方法)遞迴查詢生成檔案目錄樹(JAVA實現 遞迴過程中不訪問資料庫,遞迴之前只訪問兩次 進行遞迴前資料準備)   以下是XML中實現檔案樹的查詢、遞迴 場景:根據交易編碼,查詢檔案樹 檔案、資料夾都存放TRADER_

【技術支援】Oracle plsql中的having子句並非改寫成where子句。having子句的適用場景。

一句話: group by子句讓聚合函式輸出不同的記錄,having子句優先順序低於聚合函式,其就是用於篩選聚合後的各組值,以彌補where子句的不足。所以,having子句中的條件必須是聚合函式。 例子: update t_userinfo tu set tu.stat

為什麼任何隨便輸入的賬號使用SYSDBA許可權登陸oracle

其實簡單點就是檢查一下你的機器有沒有一個ora_dba使用者組,而且你登陸os的使用者是否在這個組裡,有的話問題的原因就找到了,下面是轉的高手的介紹 本文環境配置:Oracle10gR2,Windows XP Oracle的使用者資訊一般來說是儲存在資料字典裡的,所以常

修改Oracle資料庫使用者的密碼過期時間為無限期

Oracle的密碼過期規則是用Profile來管理的,系統預設只有一個Profile(DEFAULT),該profile的密碼過期規則為180天; 而所有的使用者都使用該DEFAULT的profile,所以如果修改DEFAULT的過期規則會影響所有的使用者; 所以我們新建一

Oracle資料庫使用者名稱及密碼查詢

  Microsoft Windows XP [版本 5.1.2600] (C) 版權所有 1985-2001 Microsoft Corp. C:\Documents and Settings\Administrator>sqlplus system/admin a

oracle 9i、10g、11g資料庫設定listener密碼的方法

轉載至http://blog.csdn.net/gyanp/article/details/8260446 Oracle 9i、10g在預設的情況下,允許任何一個人利用lsnrctl從遠端發起對監聽器的管理。 Oracle11g在listener加密的情況下,在本伺服器

匯入Oracle資料庫中的漢字是問號

iamlaosong文 匯入伺服器Oracle資料庫中漢字都是問號“?”,查資料庫的字符集沒問題,那麼就是客戶端的問題。 查Oracle使用者的環境變數,發現沒有設定NLS_LANG,在.bash_p

忘記了oracle資料庫使用者的密碼

1.WIN+R輸入cmd ,進入控制檯 2.檢視環境變數ORACLE_SID的設定情況: 執行: echo %ORACLE_SID% 會顯示結果為:%ORACLE_S

關於oracle資料庫使用者normal登陸提示使用者名稱或密碼錯誤,但sysdba登陸正常問題

作為學習筆記記錄下來: 問題描述 1.上次用10g客戶端中的Oracle Enterprise Manager Console(即圖形化介面)建立的一般使用者賦予connect及dba許可權,用pl

Oracle中Clob型別處理解析(NHibernate long值繫結long列,或者是直接oraclecommand的插入的時候報錯用,ORA-01461:僅可以插入LONG列的LONG值賦值

最近利用NHibernate對映型別為Clob欄位在插入資料時發現當字元的位元組數(一個半形字元一個位元組,一個全形字元兩個位元組)在2000-4000之間時報錯(ORA-01461:僅可以插入LONG列的LONG值賦值)。經過不斷查詢資料和自己的試驗該問題終於得到解決,下邊我將自己的心得給大家做一個分享。

Oracle 與spark-local 模式的性對比

spark 大數據 hadoop spark-sqlOracle中的查詢如果放到spark-local 模式中計算會有怎樣的結果?下面我們看一個案例 這裏需要說明的是,我這裏並沒有用spark集群,以免大家認為這裏性能的提示只是集群計算能力的功勞,具體原因和優化方式我會在後續的博客中說明。本文出自 “去

oracle查看用戶密碼時間限制

pan limited efault life use pass div lec code 1 一: 2 select *From dba_profileS s where s.profile=‘DEFAULT‘ AND RESOURCE_NAME=‘PASSWORD_L

如何讓Oracle數據庫保持優良性的方法

在那 data wid nts 組成 維護 部分 將不 許多事 OracleDatabase,又名OracleRDBMS,或簡稱Oracle。是甲骨文公司的一款關系數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。可以說Oracle數據庫系統是目前世界上流行的關系數據

aix下oracle 12.1.0.2 asmca不打開的故障

chown clas srv 無法 password scope acl div 之前 因為要添加一個新的13T磁盤組,所以決定通過asmca處理。 結果輸入asmca之後,沒有反應,前後兩天都是如此。 第三天,IBM的存儲工程師已經把心的MPIO掛上,如果還無法操作,只能

Oracle忘記用戶名和密碼

成功 set fast 12c product win app right 忘記 Microsoft Windows [版本 10.0.16299.192](c) 2017 Microsoft Corporation。保留所有權利。 C:\WINDOWS\system32