本地沒有安裝oracle。安裝了oracleclient和PL/SQL Developer。來實現對oracle數據庫的可視化操作。
在使用在登錄PL/SQL無法登錄。提示錯誤:ORA-01017: invalid username/password; logon denied 錯誤(程序中的用戶和密碼無法登錄,登錄被拒)。
找出悲劇原因的歷程:
1 看username和password是否正確,經檢查后,沒有問題。
提示:假設你使用的是IDE開發工具進行連接的數據庫,不要忽視空格檢查。假設系統用戶能夠登錄,能夠登錄后查看用戶是否存在,password是看不到的:“select username from dba_users;”。
假設用戶存在,改動一下password試試:“alter user username identified by password;”。可能是自己password記錯了呢,自己都不知道。
2 檢查自己在配置oracle時。配置的數據庫是否正確。
打開oracle客戶端的安裝路徑。D:\Program Files (x86)\Oracle\odac_client。找到tnsnames.ora,打開后檢查寫的ip地址是否正確。(我的問題就在這)
client為了遠程連接server,必須先和server上的監聽進程聯絡,Oracle通過tnsnames.ora文件里的連接描寫敘述符來說明連接信息。
名詞解釋:
ORCL248:連接描寫敘述符
address_list:表示client經由多種協議與一台或多台server連接。
在上面的樣例中表示client使用TCP協議與server端連接。
PROTOCOL:使用的協議
HOST :是TCP/IP協議使用的serverIP地址。
PORT :是TCP/IP使用的port地址。
CONNECT_DATA: 連接數據庫的連接配置
SERVER=DEDICATED: 表示用專用server連接oracle數據庫
SERVICE_NAME:server服務名稱
3 檢查用戶是否被鎖
假設用戶被鎖也會出現上面的問題,首先是系統能夠進入系統的情況下,解決方法:
用系統用戶登錄plsql , 查詢當前的全部用戶: select * from dba_users; 查看狀態是否被鎖(LOCKED ),假設你數據庫連接的用戶被鎖,給帳號解鎖
alter user user1 account unlock;
4 是否給用戶分配了權限,能夠以系統用戶登錄后。為用戶授權:
grant create session, create table,create view,unlimited,connect,resource;詳細些那些權限,依據用戶的實際權限進行。
5 網上也有說配置環境變量,我的沒有問題,當我把全部的關於oracle的環境變量都刪了之后也沒有出現不能登錄的問題,哎僅僅能是作為一種嘗試的方法了。
總結:
最后的最后問題最終攻克了,自己在查找的過程中也走過非常多彎路。可是,彎路至少證明了這條路走不通。驀然回首。那answer已在眼前。