如何避免Oracle數(shù)據(jù)庫密碼出現(xiàn)@符號
Bob Watkins(Oracle認(rèn)證專業(yè)人員、微軟認(rèn)證IT專業(yè)人員、微軟認(rèn)證數(shù)據(jù)庫管理員、微軟認(rèn)證講師)作為技術(shù)培訓(xùn)講師、資深顧問和數(shù)據(jù)庫管理員,擁有25年的計算機(jī)專業(yè)人員從業(yè)經(jīng)驗?,F(xiàn)為Dallas/Fort Worth地區(qū)數(shù)據(jù)庫咨詢與培訓(xùn)公司B.Watkins的高級顧問和管理伙伴。
密碼復(fù)雜性是IT審計人員檢查一個系統(tǒng)是否安全的一個重要方面。IT策略中經(jīng)常指出密碼應(yīng)該有最小的長度且應(yīng)該包含大寫字母、小字字母、數(shù)字和特殊字符的混合。
Oracle中應(yīng)該避免將特殊字符@用于密碼中,因為在Oracle中,@符號用來表明使用哪一臺Oracle服務(wù)器。SQL*Plus連接語句的完整格式如下:
CONNECT username/password@alias
其中alias是一個Oracle Net別名,代表一個服務(wù)器、斷口和實例名。
列表A顯示了在密碼中使用了@字符時,產(chǎn)生的錯誤:ORA-12154,“TNS:不能解析指定的連接標(biāo)識符?!盄符號被錯誤的用作Oracle Net別名,因為@之后的部分不是一個有效的別名從而產(chǎn)生錯誤。
列表 A
SQL> CREATE USER testuser1 IDENTIFIED BY 'Cat'2; DEFAULT TABLESPACE users3; TEMPORARY TABLESPACE temp;
User created.
SQL> CREATE USER testuser2 IDENTIFIED BY 'H@t'2; DEFAULT TABLESPACE users3; TEMPORARY TABLESPACE temp;
User created.
SQL> GRANT create session TO testuser1, testuser2;
Grant succeeded.
SQL> connect testuser1/catConnected.SQL> connect testuser2/h@tERROR:ORA-12154: TNS:could not resolve the connect identifier specified
Warning: You are no longer connected to ORACLE.SQL> connect testuser2/'h@t'Connected.SQL>
The workaround is to enclose the password in quotes, as shown in the listing.
這個問題在Oracle 10g第二版中也存在。同時,值得注意的是testuser1使用密碼“cat,”也可以成功登錄,即使他的密碼是“cat.”在下一個主要發(fā)行11g中,Oracle計劃用一個更安全的密碼算法取代原來的算法,新的算法允許密碼中使用真正的大寫字母和小寫字母。同時@問題也不會再出現(xiàn)。
同時,可以在PL/SQL中通過創(chuàng)建一個密碼復(fù)雜性函數(shù)阻止用戶設(shè)置包含@符號的密碼,如果新密碼包含@符號,就會被拒絕。
相關(guān)文章:
1. Microsoft Office Access修改數(shù)據(jù)表名稱的方法2. DB2 9 數(shù)據(jù)庫服務(wù)器管理之DB2實例3. 用shell抽取,更新db2的數(shù)據(jù)4. 實例講解DB2數(shù)據(jù)庫性能監(jiān)控的具體步驟5. MySQL插入數(shù)據(jù)時,如果記錄不存在則insert,如果存在則update6. ACCESS數(shù)據(jù)庫修改自動編號的ID值為零的方法分享7. Microsoft Office Access復(fù)制數(shù)據(jù)表的方法8. 數(shù)據(jù)庫相關(guān)的幾個技能:ACCESS轉(zhuǎn)SQL9. 提高數(shù)據(jù)庫處理速度的利器——MySQL存儲過程詳解10. Sql在單一表中檢索數(shù)據(jù)的方法詳解
