Oracle

如何從 linux 訪問 Oracle 數據庫

  • November 26, 2020

我們有一個舊的 Oracle 數據庫託管一個現在關閉的網站的所有資訊,由於 GDPR 等原因,我們需要在一段時間內保持數據庫上的數據可用。我們已經收到以前使用者的一些請求,要求刪除這些資訊.

問題…

該數據庫最後一次使用是在 5-6 年前(出於法律原因,我們需要保持 10 年的訪問權限),仍在公司的員工都沒有能夠執行刪除操作的數據庫帳戶,我們只能讀取數據。

我們擁有對託管數據庫的 linux 伺服器的完全 root 訪問權限,但除此之外,我們只有能夠讀取資訊的數據庫帳戶。數據庫中存在能夠執行刪除等操作的舊帳戶,但這些帳戶的密碼會及時失去。

有什麼方法可以創建一個具有適當訪問權限的新數據庫使用者?或者某些如何觸發舊數據庫使用者的密碼重置(鑑於我們對數據庫本身的訪問受限)?

為清楚起見進行了編輯:

oracle linux 6.5,oracle db 12.1.0.2

使用 su - oracle(並確保機器已開機)後,我現在可以執行 sqlplus!

我需要做些什麼來讓 sqlplus 使用 os creds 執行嗎?我找到了一些關於此的線上資訊,其中建議在 sqlnet.ora 文件中進行一些設置,但伺服器上此文件的唯一實例是範例文件,我認為它不是要更新的正確文件,例如

/u01/app/oracle/product/12.1.0.2/network/admin/samples/sqlnet.ora

我試過:

sqlplus / as sysdba

這給了我 SQL 提示符,但是如果我嘗試執行:

conn /

然後它以無效的使用者名/密碼響應-我假設 conn 旨在將您連接到實際的數據庫(不確定,在某些部落格中找到)

最後編輯:

修復了我的最後一個問題,連接時需要包含架構名稱!謝謝大家。

由於您對伺服器具有 root 訪問權限,因此您可以su訪問 Oracle 實例所有者(通常為oracle),使用作業系統身份驗證本地連接到數據庫(例如sqlplus / as sysdba),並根據需要創建新的(或修改現有的)Oracle 使用者或角色。


如果您不熟悉suLinux 上登錄 shell 的工作方式和工作方式,則需要執行su - oracle以確保執行 Oracle 使用者配置文件,正確設置 shell 環境。如果數據庫是由有經驗的人安裝的,那將包括配置所有必要的 Oracle 環境變數,允許您呼叫它的實用程序,例如sqlplus.

如果嘗試執行sqlplus失敗並出現“找不到命令”或類似情況,請嘗試通過以oracle使用者身份執行自己來設置 Oracle 環境source /usr/local/bin/oraenv。請注意,它oraenv可能位於其他位置,不一定位於 中/usr/local/bin,具體取決於您的 Oracle 版本、Linux 風格以及 Oracle 的實際安裝方式。


感謝Michael KutzEdStevens的寶貴批評。

引用自:https://dba.stackexchange.com/questions/280314