安裝Oracle9i用戶端後,使用System.Data.OracleClient訪問Oracle資料庫如果出現這種錯誤:
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
原因
Oracle 9i Release 2 用戶端在安裝到Windows的NTFS分區下時的安全認證設定不正確,引起原生Authenticated Users使用者無法看到ORACLE_HOME目錄下的內容; 這導致在ASP.NET以Authenticated Users許可權使用System.Data.OracleClient串連Oracle資料庫時報出以上錯誤。
解決方案:
在oracle/bin目錄,加入給以下使用者/組,授完全許可權:
asp.net machine account
administrator
authenticated users
並且將Asp.net加入到administrator組,再重啟IIS
上面這種方法是實踐過可行的,
網上還有一種方案,大抵相同,有細小區別,其實不主張將asp.net加入administrator,也不主開開過份大的許可權,但下面這種方法,試過似乎不可行:
- 以Administrator許可權登入Windows.
- 啟動Window 資源總管找到ORACLE_HOME目錄,如C:\Oracle\ora92
- 右鍵快顯功能表,選擇該目錄共用與安全(Win2000下要點擊屬性)
- 點擊 “安全” 頁簽
- 在組和使用者名稱稱列表中點擊“Authenticated Users” 項.
- 在該使用者的許可權列表中,將“讀取和運行”的選擇框置為不選中狀態
- 再次點擊“讀取和運行”的選擇框,將其設定為選中狀態
- 點擊“進階”按鈕並在許可權項目中確定“Authenticated Users” 是否擁有“讀取並運行”許可權並應用於“該檔案夾,及子檔案夾和檔案”. 如果不是,雙擊這樣,並確保許可權可以“應用於” “該檔案夾,及子檔案夾和檔案”. 該項非常重要你一定要核查.
- 點擊“確定” 按鈕
- 重啟動, 以使得所有的修改生效.